C++primer 11.3.2节练习

练习11.20

 1 #include <iostream>
 2 #include <string>
 3 #include <set>
 4 #include <map>
 5 #include <algorithm>
 6 #include <vector>
 7 #include <algorithm>
 8 #include <iterator>
 9
10 using namespace std;
11
12 int main()
13 {
14     map<string, int> word_count;
15     string word;
16     while (cin >> word)
17     {
18         auto ret = word_count.insert({ word, 1 });
19         if ( !ret.second )
20         {
21             ++ret.first->second;
22         }
23     }
24     for (auto c : word_count)
25     {
26         cout << c.first << " " << c.second << endl;
27     }
28     system("pause");
29     return 0;
30 }

insert的写法更加简洁。

练习11.21

拆解出来如下

1 auto ret = word_count.insert({ word,0 });
2     ++ret.first->second;

练习11.22

参数类型

1 pair<string, vector<int>>

返回类型

1 pair<map<string, vector<int>>::iterator, bool>

练习11.23

 1 #include <iostream>
 2 #include <string>
 3 #include <set>
 4 #include <map>
 5 #include <algorithm>
 6 #include <vector>
 7 #include <algorithm>
 8 #include <iterator>
 9
10 using namespace std;
11
12 int main()
13 {
14     multimap<string, vector<string>> name;
15     string first_name;
16     string lname;
17
18     while (cin >> first_name >> lname)
19     {
20         vector<string> last_name;
21         last_name.push_back(lname);
22         name.insert({ first_name, last_name });
23     }
24     for (auto c : name)
25     {
26         cout << c.first << " ";
27         for (auto w : c.second)
28             cout << w << " ";
29         cout << endl;
30     }
31     system("pause");
32     return 0;
33 }
时间: 2024-12-20 16:29:16

C++primer 11.3.2节练习的相关文章

C++primer 11.3.5节练习

练习11.27 对于multimap来说统计关键字出现的次数用count会很好,而对于map来说寻找关键字来说更加妥当: 练习11.28 1 #include <iostream> 2 #include <string> 3 #include <set> 4 #include <map> 5 #include <algorithm> 6 #include <vector> 7 #include <algorithm> 8

C++primer 11.2.3节练习

练习11.12 1 #include<iostream> 2 #include<string> 3 #include <iostream> 4 #include <vector> 5 #include <algorithm> 6 #include <list> 7 #include <functional> 8 #include <iterator> 9 #include <map> 10 #inc

C++primer 11.2.2节练习

练习11.9 1 #include<iostream> 2 #include<string> 3 #include <iostream> 4 #include <vector> 5 #include <algorithm> 6 #include <list> 7 #include <functional> 8 #include <iterator> 9 #include <map> 10 #incl

C++primer 11.1节练习

练习11.1 map他是一个有序的且元素不重样的关联容器,他存放元素的方式是以键值对的方式存放的: vector容器没有什么特别的要求 练习11.2 list适用于在在任何地方添加删除元素,因为他是个双向的链表: vector适用于需要随机访问的程序,只能在尾后添加元素,在其他位置添加或删除元素效率会很低:代价过大 deque适用于在容器首尾添加删除元素且随机访问的程序: map是键值对的集合,他能在查找的同时进行高效的访问: set就是关键字的简单集合,适用于当只是想知道一个值是否存在时,是最

C++primer 15.7.3节练习

练习15.26 写的时候不小心写到了派生类Disc_quote,其实是一样的,主要明白原理即可 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() : bookNo(

C++primer 15.2.2节练习

练习15.4 a)错误,一个类不能派生它本身 b)正确,Derived从他的基类Base派生,且规定派生类从基类继承的数据成员对于派生类的用户是不可见. c)错误,派生类的声明与其他类相差不大,声明中包含类名但是不包含他的派生列表: 练习15.5 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector>

C++primer 14.2.1节练习

练习14.6 1 #include <iostream> 2 #include <string> 3 #include <memory> 4 #include <vector> 5 #include <algorithm> 6 #include <numeric> 7 8 using namespace std; 9 10 class Sales_data { 11 friend istream& operator >&

双11之后年货节,阿里打的什么算盘?

2015天猫"双11"取得创纪录的912.17亿交易额后,阿里巴巴没有因此停下前进的步伐.11月12日凌晨,阿里巴巴集团CEO张勇在北京水立方丢出一枚彩蛋:宣布将举办一个完全不同的节日--阿里年货节. 如今,这一节日已经"出鞘".12月23日下午,首届阿里年货节在革命老区陕西延安宣布正式启动.据报道,首届阿里年货节活动将于2016年1月14日起预热,17日(腊八节)正式开售,至21日结束.而在农村淘宝方面,丰富的线上线下活动在1月6日即会启动,热度将持续至2月中旬即

C++primer 15.7.4节练习

练习15.27 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() : bookNo(""), price(0.0) { cout <<