练习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