C++primer 对容器元素重新排序

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 #include<fstream>
 5 #include<vector>
 6 #include<sstream>
 7 
 8 using namespace std;
 9 
10 
11 bool isShorter(const string &s1,const string &s2)
12 {
13     return s1.size()<s2.size();
14 }
15 
16 bool GT6(const string &s){
17     return s.size()>=6;
18 }
19 
20 
21 int main()
22 {
23     ifstream infile;
24     infile.open("input.txt");
25     string line;
26     vector<string> words;
27     
28     getline(infile,line);
29     istringstream line1(line);
30     string word;
31     while(line1>>word)
32         words.push_back(word);
33     for(vector<string>::size_type num=0;num!=words.size();++num)
34         cout<<words[num]<<" ";
35     cout<<endl;
36     
37     sort(words.begin(),words.end());
38         
39     for(vector<string>::size_type num=0;num!=words.size();++num)
40         cout<<words[num]<<" ";
41     cout<<endl;
42 
43     vector<string>::iterator end_unique=
44         unique(words.begin(),words.end());
45 
46 
47     for(vector<string>::size_type num=0;num!=words.size();++num)
48         cout<<words[num]<<" ";
49     cout<<endl;
50 
51     words.erase(end_unique,words.end());
52 
53         
54     for(vector<string>::size_type num=0;num!=words.size();++num)
55         cout<<words[num]<<" ";
56     cout<<endl;
57 
58     stable_sort(words.begin(),words.end(),isShorter);
59 
60     
61     for(vector<string>::size_type num=0;num!=words.size();++num)
62         cout<<words[num]<<" ";
63     cout<<endl;
64 
65     vector<string>::size_type wc=count_if(words.begin(),words.end(),GT6);
66     cout<<wc<<endl;
67 
68 
69 }

文本内容:

the quick red fox jumps over the slow red turtle

 

posted @ 2017-12-18 20:03  accomplishment  阅读(281)  评论(0编辑  收藏  举报