泛型算法例子
2015-07-08 09:37
281 查看
#include<iostream> #include<string> #include<vector> #include<algorithm> #include<numeric> using namespace std; void output(string s) { cout << s << " "; } void elimDups(vector<string> &words)//删除相同单词,并进行排序 { sort(words.begin(), words.end());//排序 vector<string> end_unique_words = unique(words.begin(), words.end()); //把重复元素移到后面,并且返回去重后最后一个元素的地址 words.erase(end_unique_words, words.end());//删除重复 } void biggest(vector<string> &words, string::size_type sz) { elimDups(words); stable_sort(words.begin(), words.end(), [](const string &a, const string &b) {return a.size() < b.size(); });//按长度排列 auto wc = find_if(words.begin(), words.end(), [sz](const string &a){return a.size() >= sz; });//获取比指定长度长的单词 auto count = words.end() - wc; cout << count << endl; /*for_each(wc, words.end(), [](const string &s){cout << s << " "; });*/ for_each(wc, words.end(),output); cout << endl; } void main() { vector<string> vec; cout << "请输入一行英文(输入Ctrl+z结束):" << endl; string str; while (cin>>str && (str!="EOF")) { vec.push_back(str); } /*vec.push_back("sdf"); vec.push_back("dsfd"); vec.push_back("fgf"); vec.push_back("gfgf"); vec.push_back("sdf"); vec.push_back("asd");*/ biggest(vec, 4); //for_each(vec.begin(), vec.end(), output); }
相关文章推荐
- C++泛型算法的一些总结
- c++ 泛型算法 使用方法总结
- C++初学,泛型算法 一
- C++ Primer阅读心得(第十章、第十一章)
- 泛型算法与容器的关系
- c++ primer 读书笔记之第十章 泛型算法
- 【转】STL算法-合并(集合)
- C++Primer第五版 第十章习题答案(11~20)
- C++Primer第五版 第十章习题答案(1~10)
- Lambda 表达式使用介绍
- 【C++ Primer 学习笔记】: 容器和算法之【泛型算法】
- 泛型算法
- c++ primer第10章 - 泛型算法
- 重拾C++ 泛型算法
- Essential C++学习第三章 泛型编程风格 STL
- 泛型算法
- 本科教育忽略的黄金C++<5> 泛型算法-特定容器算法
- STL库中几种容器及迭代器的使用
- generic algorithm
- C++标准泛型算法库的函数为什么设计成不能改变容器大小?