编写一个程序,从键盘输入一个个单词,每接收到一个单词后,输出该单词是否曾经 店 出现过以及出现次数。可以尝试分别用多重集合(multiset)和映射(mmap)两种遥径 玩 实现,将二者进行比较。
时间: 2024-05-10 13:19:13 浏览: 104
使用 multiset 实现:
```cpp
#include <iostream>
#include <string>
#include <set>
int main() {
std::multiset<std::string> words;
std::string word;
while (std::cin >> word) {
words.insert(word);
std::cout << "\"" << word << "\" has appeared " << words.count(word) << " times." << std::endl;
}
return 0;
}
```
使用 multimap 实现:
```cpp
#include <iostream>
#include <string>
#include <map>
int main() {
std::multimap<std::string, int> words;
std::string word;
int count = 0;
while (std::cin >> word) {
words.insert(std::make_pair(word, ++count));
std::cout << "\"" << word << "\" has appeared " << words.count(word) << " times." << std::endl;
}
return 0;
}
```
两种实现都可以实现题目要求,multiset 用来存储单词,count 函数可以返回某个单词出现的次数;multimap 用来存储单词和出现的次序,count 函数同样可以返回某个单词出现的次数。相比而言,multimap 可以记录单词出现的次序,而 multiset 不能。
阅读全文