📜  在C++中使用unordered_map的字符串中每个字符的频率(1)

📅  最后修改于: 2023-12-03 15:37:34.760000             🧑  作者: Mango

在C++中使用unordered_map的字符串中每个字符的频率

在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;
}