码迷,mamicode.com
首页 > 编程语言 > 详细

C++primer 10.3.2节练习

时间:2017-08-14 14:19:55      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:tab   lambda表达式   sys   表达式   --   pause   int   turn   for_each   

练习10.14

1 [] (const int &a, const int &b) {return a + b;}

练习10.15

1 [a] (const int &b) { return a + b; }

练习10.16

 1 void biggies(vector<string>& words, vector<string>::size_type sz)
 2 {
 3     elmDups(words);
 4     stable_sort(words.begin(), words.end(), isShorter);
 5     auto wc = find_if(words.begin(), words.end(), [sz](const string &s) { return s.size() >= sz; });
 6     auto count = words.end() - wc;
 7     cout << count << endl;
 8     for_each(wc, words.end(), [](const string &s) { cout << s << " "; });
 9     cout << endl;
10 }

练习10.17

 1 int main()                                                                            //main函数的部分需要改变
 2 {
 3     vector<Sales_data> Data;
 4     Sales_data data;
 5     int i = 3;
 6     while (i-- != 0)
 7     {
 8         read(cin, data);
 9         Data.push_back(data);
10     }
11     sort(Data.begin(), Data.end(), [](const Sales_data &d1, const Sales_data &d2) { return d1.isbn() < d2.isbn(); });
12     for (auto c : Data)
13     {
14         print(cout, c);
15         cout << endl;
16     }
17     system("pause");
18     return 0;
19 }

对照10.12程序看

练习10.18

 1 void biggies(vector<string>& words, vector<string>::size_type sz)
 2 {
 3     elmDups(words);
 4     stable_sort(words.begin(), words.end(), isShorter);
 5     auto wc = partition(words.begin(), words.end(), [sz](const string &s) {return s.size() < sz;});  //这里将lambda表达式函数体内部改为小于,因为此算法返回的值为指向最后一个为true的元素后一个位置
 6     auto count = words.end() - wc;
 7     cout << count << endl;
 8     for_each(wc, words.end(), [](const string &s) { cout << s << " "; });
 9     cout << endl;
10 }

练习10.19

 1 void biggies(vector<string>& words, vector<string>::size_type sz)
 2 {
 3     elmDups(words);
 4     stable_sort(words.begin(), words.end(), isShorter);
 5     auto wc = stable_partition(words.begin(), words.end(), [sz](const string &s) {return s.size() < sz;});  //这里将lambda表达式函数体内部改为小于,因为此算法返回的值为指向最后一个为true的元素后一个位置
 6     auto count = words.end() - wc;
 7     cout << count << endl;
 8     for_each(wc, words.end(), [](const string &s) { cout << s << " "; });
 9     cout << endl;
10 }

 

C++primer 10.3.2节练习

标签:tab   lambda表达式   sys   表达式   --   pause   int   turn   for_each   

原文地址:http://www.cnblogs.com/wuyinfenghappy/p/7357296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!