只为学习set 的用法,set就是数学上集合,每个元素只出现一次。和sort一样,所有类型都可以,但是必须定义小于运算符。
1 #include <cstdio> 2 #include <string> 3 #include <set> 4 #include <cctype> 5 #include <iostream> 6 #include <sstream> 7 using namespace std; 8 set<string> dict; 9 10 11 int main() 12 { 13 string s,buf; 14 while(getline(cin ,s)) 15 { 16 //dict.clear(); 17 for(int i=0;i<s.length();i++) 18 if(isalpha(s[i])) 19 s[i]=tolower(s[i]); 20 else 21 s[i]=' '; 22 stringstream ss(s); 23 while(ss>>buf) 24 dict.insert(buf); 25 26 for(set<string>::iterator it=dict.begin();it!=dict.end();it++) 27 cout << *it <<endl; 28 } 29 return 0; 30 }
count()函数--统计set中某一个元素的个数。
lower_bound和upper_bound函数返回set中元素下界和上届的迭代器
getline()是定义在<string>头文件中,功能是取一行字符串,读到换行符r结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取。
getline(cin,str);第一个参数是输入流对象,第二个参数是字符串对象,该函数将istream参数作为返回值。如while(getline(cin, line))