在 C++ 里,wordFreq.count(rightWord) 的含义取决于 wordFreq 的类型。通常它是一个 关联容器(比如 std::map 或 std::unordered_map),那么:
📌 count() 在关联容器中的作用
定义:
count(key)用来统计某个键key在容器中出现的次数。返回值:
如果容器是
std::map或std::unordered_map(键唯一),那么返回值只能是 0 或 1:0→ 表示容器里没有这个键1→ 表示容器里存在这个键
如果容器是
std::multimap或std::unordered_multimap(键可以重复),那么返回值可能是 0、1 或大于 1,表示该键出现的次数。
🧠 举例说明
例子 1:std::unordered_map
cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> wordFreq;
wordFreq["apple"] = 3;
wordFreq["banana"] = 2;
string rightWord = "apple";
cout << wordFreq.count(rightWord) << endl; // 输出 1
}
👉 因为 unordered_map 的键唯一,所以只会返回 0 或 1。
例子 2:std::unordered_multimap
cpp
#include <iostream>
#include <unordered_multimap>
using namespace std;
int main() {
unordered_multimap<string, int> wordFreq;
wordFreq.insert({"apple", 3});
wordFreq.insert({"apple", 5});
wordFreq.insert({"banana", 2});
string rightWord = "apple";
cout << wordFreq.count(rightWord) << endl; // 输出 2
}
👉 在 unordered_multimap 中,apple 出现了两次,所以返回 2。
✅ 总结
wordFreq.count(rightWord)= 统计键rightWord在哈希表中出现的次数。在
map/unordered_map中 → 返回值只能是 0 或 1。在
multimap/unordered_multimap中 → 返回值可能大于 1。