📅  最后修改于: 2023-12-03 15:37:34.760000             🧑  作者: Mango
在C++中,unordered_map是一种容器,用于存储键值对,类似于字典。其中,键和值可以是任意类型,例如,可以使用unordered_map对字符串中的每个字符的频率进行计数。
以下是一个示例代码,展示如何使用unordered_map在C++中实现字符串中每个字符的频率计数:
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::string str = "hello world";
std::unordered_map<char, int> freq_map;
for (char c : str) {
if (freq_map.find(c) == freq_map.end()) {
freq_map[c] = 1;
} else {
freq_map[c]++;
}
}
for (auto p : freq_map) {
std::cout << "Character " << p.first << " appears " << p.second << " times." << std::endl;
}
return 0;
}
在上面的代码中,我们定义了一个名为str的字符串和一个名为freq_map的unordered_map,用于存储每个字符的频率。我们使用for循环迭代字符串中的每个字符,并使用find函数查找该字符是否已经在freq_map中。如果该字符不存在,则将其添加到freq_map中,并将其频率设置为1。如果该字符已经存在,则将其频率加1。最后,我们使用for循环遍历unordered_map并输出每个字符及其频率。
Markdown代码片段如下:
``` c++
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::string str = "hello world";
std::unordered_map<char, int> freq_map;
for (char c : str) {
if (freq_map.find(c) == freq_map.end()) {
freq_map[c] = 1;
} else {
freq_map[c]++;
}
}
for (auto p : freq_map) {
std::cout << "Character " << p.first << " appears " << p.second << " times." << std::endl;
}
return 0;
}