C++ Primer课后练习10.22,10.23,10.24,10.25
2016-12-23 20:11
369 查看
//课后练习10.22 #include<iostream> #include<vector> #include<string> #include<algorithm> #include<numeric> #include<functional> using namespace std; using namespace placeholders; void elimdups(vector<string> & words) { //按字典序排序 sort(words.begin(), words.end()); auto end_unique = unique(words.begin(), words.end()); words.erase(end_unique, words.end()); } bool check_size(const string &s, string::size_type sz) { return s.size() > sz; } bool ishorter(const string &s1, const string &s2) { return s1.size() < s2.size(); } ostream & print(ostream &os, const string & s, char c) { return os << s << c; } void biggies(vector<string> & words, vector<string>::size_type sz) { elimdups(words); //将word按字典序排序,删除重复单词 stable_sort(words.begin(), words.end(), bind(ishorter,_1,_2)); //auto s1 = bind(check_size, _1, sz); auto wc = find_if(words.begin(), words.end(), bind(check_size, _1, sz)); auto count = words.end() - wc; for_each(wc, words.end(), bind(print,ref(cout), _1, ' ')); } int main(void) { vector<string> words; string word; while (cin >> word) { words.push_back(word); } biggies(words, 5); return 0; } /*********************************************************************/
//课后练习10.24 #include<iostream> #include<functional> #include<algorithm> #include<vector> #include<string> using namespace std; using namespace placeholders; bool check_size(const string & s1, string::size_type sz) { return s1.size() < sz; } int main(void) { string s1("whatthe"); vector<int> vec1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; auto wc= find_if(vec1.begin(), vec1.end(), bind(check_size, s1,_1)); int count = vec1.end() - wc; cout << "vec1中第" <<vec1.size()-count << "个第一个大于string长度" << endl;
/********************************************************************/ //练习10.24 #include<iostream> #include<vector> #include<string> #include<algorithm> #include<numeric> #include<functional> using namespace std; using namespace placeholders; void elimdups(vector<string> & words) { //按字典序排序 sort(words.begin(), words.end()); auto end_unique = unique(words.begin(), words.end()); words.erase(end_unique, words.end()); } ostream & print(ostream & os,const string & s, const char c) { return os << s << c; } bool check_size(const string & s, string::size_type sz) { return s.size()> sz; } void biggies(vector<string> & words, vector<string>::size_type sz) { elimdups(words); //将word按字典序排序,删除重复单词 for_each(words.begin(), words.end(), bind(print,ref(cout),_1,' ')); cout << endl; //stable_sort(words.begin(), words.end(),//按大小排序,相同的保存字母顺序 // [](const string& s1, const string & s2){return s1.size() < s2.size(); }); auto wc = partition(words.begin(), words.end(), bind(check_size,_1,sz)); for_each(words.begin(),wc, bind(print, ref(cout), _1, ' ')); cout << endl; } int main(void) { vector<string> words{ "the", "quick", "red", "fox", "jumps", "over", "the", "slow", "red", "turtle" }; biggies(words, 4); return 0; }}
相关文章推荐
- C++ Primer课后练习10.22,10.24,10.25
- 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 system
- 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 system
- C++ Primer课后练习 9-46
- 10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍
- c++ primer 课后练习 9.28
- C++ Primer 课后练习10.1,10.2,10.3,10.4,10.5,10.7,10.9
- C++ Primer课后练习11.33-11.36
- 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 system
- C++ Primer 课后练习9.50
- C++ Primer课后练习10.34~10.37,10.42
- C++ Primer课后练习12.2
- C++ Primer课后练习9.47
- C++ Primer课后练习9.52
- C++ Primer课后练习10.27,10.28
- C++ primer 第五版 中文版 练习 10.25个人code
- C++ Primer课后练习9.49
- C++ Primer课后练习10.29-10.33
- c++ Primer课后练习9-31
- C++ Primer 课后练习9.51