C++中非常好用的泛型函数
1、泛型函数
泛型函数结合lambda函数可以实现很多功能如:
将序列中的每个负数替换为其绝对值: transform(vi.begin(),vi.end(),vi.begin,[](int x){return x<0? -x:x;});
查找第一个长度大于等于sz的元素: auto wc =find_if(words.begin(),words.end(),[sz](const string &a){return a.size()>= sz;});
取消重载分歧的函数: find(beg,end,val);
打印容器内的值: for_each(wc,words.end(),[](const string &s) {cout<<s<<" ";});
相同长度的单词按照字典序排列: stable_sort(words.begin(),words.end(),[](const string &a, const string &b){return a.size()<b.size();});
函数统计个数: count_if(vi.begin(),vi.end(),[sz](int a){return a<sz? -a:a;}); //待验证
逆序函数: reverse(beg,end);
逆序输出到目的位置: reverse(beg,end,dest);
去除成员: remove_if(v1.begin(),v1.end(),[](int i){return i%2});
remove_copy_if(v1.begin(),v1.end(),back_inserter(v2),[](in i){return i%2;}); // 369
复制函数: copy(vi.begin(),vi.end(),vii.begin());
待补充...