重写biggies,用partition代替find_if。
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<iterator>
using namespace std;
void biggies(vector<string> &s,vector<string>::size_type sz);
void elimdups(vector<string> &s){
sort(s.begin(),s.end());
auto unique_end=unique(s.begin(),s.end());
s.erase(unique_end,s.end());
}
int main(void){
char *p[]={"indicate","apple","red","ramos","apple","rockets","red","world","end","blue","white","wx","misaya","end"};
vector<string> test(begin(p),end(p));
biggies(test,5);
return 0;
}
void biggies(vector<string> &s,vector<string>::size_type sz){
elimdups(s);
auto pos=partition(s.begin(),s.end(),[sz](const string &str){return str.size()<sz;});
for_each(pos,s.end(),[](const string &str){cout<<str<<endl;});
}