bool isShorter(const string & s1,const string & s2)
{
return (s1.size()<s2.size());
}
void function_10_11(void)
{
/*elimDups函数*/
vector<string> txt;
string word;
while (getline(cin,word))
{
txt.push_back(word);
}
sort(txt.begin(),txt.end());
auto poi = unique(txt.begin(),txt.end());
txt.erase(poi,txt.end());
/*****************************/
stable_sort(txt.begin(),txt.end(),isShorter);
for(const auto & i:txt)
{
cout<<i<<" ";
}
}
bool isHavefivechar(const string & s)
{
return (s.size()>=5);
}
void function_10_13(void)
{
/*elimDups函数*/
vector<string> txt;
string word;
while (getline(cin,word))
{
txt.push_back(word);
}
sort(txt.begin(),txt.end());
auto poi = unique(txt.begin(),txt.end());
txt.erase(poi,txt.end());
/*****************************/
auto iter = partition(txt.begin(),txt.end(),isHavefivechar);
for(auto i=txt.begin();i!=iter;i++)
{
cout<<*i<<" ";
}
}
void function_10_14(void)
{
int a,b;
cin>>a;
cin>>b;
auto c = [a,b]{ return a+b; };
auto d = [](int m,int n){ return m+n; }(a,b);
auto e = [](int m,int n){ return m+n; };
cout << c()<<endl;
cout << d <<endl;
cout << e(a,b) <<endl;
}
void function_10_16(void)
{
/*elimDups函数*/
vector<string> txt;
string word;
while (getline(cin,word) && word!="end")
{
txt.push_back(word);
}
cout<<" string has been input."<<endl;
sort(txt.begin(),txt.end());
auto poi = unique(txt.begin(),txt.end());
txt.erase(poi,txt.end());
/*****************************/
vector<string>::size_type sz;
cin>>sz;
cout<<" string's size has been input."<<endl;
stable_sort(txt.begin(),txt.end(),[](const string& s1,const string& s2)
{ return s1.size()<s2.size();});
cout<<endl;
cout<<endl;
auto iter = find_if(txt.cbegin(),txt.cend(),[sz](const string& s)
{ return s.size()>=sz; });
for_each(iter,txt.cend(),[](const string & s){ cout << s << endl; });
cout<<endl;
}
void function_10_18(void)
{
/*elimDups函数*/
vector<string> txt;
string word;
while (getline(cin,word) && word!="end")
{
txt.push_back(word);
}
cout<<" string has been input."<<endl;
sort(txt.begin(),txt.end());
for(auto i:txt)
{
cout<<i<<" ";
}
cout<<endl;
auto poi = unique(txt.begin(),txt.end());
for(auto i:txt)
{
cout<<i<<" ";
}
cout<<endl;
txt.erase(poi,txt.end());
for(auto i:txt)
{
cout<<i<<" ";
}
cout<<endl;
/*****************************/
vector<string>::size_type sz;
cin>>sz;
cout<<" string's size has been input."<<endl;
cout<<endl;
auto iter = stable_partition(txt.begin(),txt.end(),[sz](const string & s){return s.size()<sz;});
for_each(iter,txt.end(),[](const string & s){ cout<<s<<endl;});
}
void function_10_20(void)
{
vector<string> txt;
string word;
while (getline(cin,word) && word!="end")
{
txt.push_back(word);
}
cout<<" string has been input."<<endl;
vector<string>::size_type sz;
cin>>sz;
cout<<" string's size has been input."<<endl;
auto num = count_if(txt.cbegin(),txt.cend(),[sz](const string &s1){return s1.size()>sz;});
cout<<num<<endl;
}