gpt4 book ai didi

c++ - 插入到 unordered_map 的 unordered_map 中?

转载 作者:行者123 更新时间:2023-11-30 02:34:36 26 4
gpt4 key购买 nike

我有一个数据结构,它是 unordered_map 的 unordered_map:

typedef std::unordered_map<string, int> map1;
typedef std::unordered_map<string, map1> map2;

我想在 map1 中插入一个元素,而不需要使用 IF 语句来检查它是否已经存在。但是,我有点困惑,因为除非您已经拥有 map1 元素,否则 map2 没有值,但 map1 元素来自 map2(如果它已经存在)。

最干净的方法是什么?

最佳答案

如果您不使用指针,您可以简单地在两个 map 上使用 operator[]

#include <iostream>
#include <unordered_map>
#include <string>

typedef std::unordered_map<std::string, int> map1;
typedef std::unordered_map<std::string, map1> map2;

int main()
{
map2 m2;
m2["a"]["b"] = 1;

std::cout << m2["a"]["b"] << std::endl;
}

如果只有 map2* 你可以按如下方式做

int main()
{
map2* m1 = new map2();
map2& m2 = *m1;
m2["a"]["b"] = 1;

std::cout << m2["a"]["b"] << std::endl;
}

关于c++ - 插入到 unordered_map 的 unordered_map 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com