C++ primer 第五版 中文版 练习 11.31
题目:编写程序,定义一个作者及其作品的multimap 。使用find 在 multimap 中查找一个元素并用erase 删除它。确保你的程序在元素不在map中时也能正常运行。
答:
- #include <iostream>
- #include <map>
- #include <string>
- using namespace std;
- int main()
- {
- multimap<string, string> mumap = { {"ben","think in C++"},{ "rock", "C++ Primer" }, { "rock", "the C program" }, { "li", "hackers" }, { "li", "C++ primer plus" } };
- string keyword;
- cout << "请输入要删除的关键字:";
- cin >> keyword;
- auto cnt = mumap.count(keyword);
- if (cnt == 0)
- {
- cout << "要删除的关键字" << keyword << "不在mumpa中" << endl;
- }
- else
- {
- while (cnt)
- {
- auto iter = mumap.find(keyword);
- mumap.erase(iter);
- --cnt;
- }
- cout << "删除成功,删除后的mumap内的内容为:" << endl;
- for (const auto &w : mumap)
- cout << w.first << " " << w.second << endl;
- }
- return 0;
- }