集合 哦....對了,set有自動按照字典序排序功能。。。。。ios
#include <cstdio> #include <vector> #include <set> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++) { v.push_back(i); v.push_back(i); } set<int> s; s.insert(v.begin(), v.end()); //由於是集合,因此重複的元素不會被重複插入 for (set<int>::iterator it = s.begin(); it != s.end(); it++) printf("%d\n", *it); printf("\n"); return 0; }
這個通常都用的是erase()--->刪除指定的元素或者刪除指定部分的元素 和 clear()--->清除全部元素 操做以下:函數
set<int> s; s.erase(2); s.clear();
set支持upper_bound() lower_bound() find()等操做 舉個例子:spa
set<int> s; set<int>::iterator it; it = s.find(5); //查找鍵值爲5的元素 if (it != s.end()) //找到了 cout << *it << endl;
判斷字符ch是否爲英文字母,若爲英文字母,返回非0(小寫字母爲2,大寫字母爲1)。若不是字母,返回0。 具體用法見下code
輸入輸出轉換操做 具體用法見下blog
是一種函數,功能是把字母字符轉換成小寫,非字母字符不作出處理。 具體用法見下排序
下面是該題代碼:ci
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<sstream> #include<set> using namespace std; set<string>aa; string s,cur; int main(){ std::ios::sync_with_stdio(false); while(cin>>s) { for(int i=0;i<s.length();i++) { if(isalpha(s[i])) s[i]=tolower(s[i]); else s[i]=' '; } stringstream ss(s); while(ss>>cur) aa.insert(cur); } for(set<string>::iterator it=aa.begin();it!=aa.end();it++) { cout<<*it<<endl; } return 0; }