c++ - C++ 中的 HashMap (int, string[])

标签 c++ arrays string dictionary hashmap

有人可以告诉我在以下情况下开始使用 C++ 中的 Hashmap 的代码吗:

我想要 (int,string[]) 的 (key,value) 映射。

所以,我的 map 应该有一个 int 键指向某个大小的字符串数组。如何在 C++ 中为此声明和使用 HashMap 。

请帮我解决这个问题。提前致谢

最佳答案

您可以使用 std::map std::unordered_map std::stringstd::vector,但是 unordered_multimap在 C++ 中提供了更好的选择。它允许您为同一键存储多个项目,而无需管理每个映射条目内的 vector 。

以下是使用 map 的示例:

using namespace std;

int main(int argc, const char* argv[]) {
    unordered_map<int,vector<string>> mvs;
    vector<string> items1;
    items1.push_back("hello");
    items1.push_back("world");
    vector<string> items2;
    items2.push_back("quick");
    items2.push_back("brown");
    items2.push_back("fox");
    mvs[1] = items1;
    mvs[200] = items2;
    mvs[4].push_back("another_one");
    for(unordered_map<int,vector<string>>::const_iterator iter = mvs.begin() ; iter != mvs.end() ; iter++) {
        cout << iter->first << ":";
        for (vector<string>::const_iterator jter = iter->second.begin() ; jter != iter->second.end() ; jter++) {
            cout << *jter << " ";
        }
        cout << endl;
    }
    return 0;
}

编辑提及 HashMap 。

关于c++ - C++ 中的 HashMap (int, string[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235553/

相关文章:

C++ 用零填充二维数组

c++ - 安装旧版本的 gcc

c - 在不同范围内设置和使用变量在 C 中不起作用

指针加法的 C 行为

python - 如何打印 unicode 字符串的十进制表示形式?

java - 如何将十六进制字符串转换为 Java 字符串?

c++ - 使用函数分配内存时会发生什么?

java - 如何使用坐标移动数组中的符号?

c++ - 在字符串中输出数据

c++ - 500万随机数程序运行不了