插入到一个无序映射的无序映射中
Inserting in to an unordered_map of unordered_map?
我有一个数据结构,它是unordered_map:
typedef std::unordered_map<string, int> map1;
typedef std::unordered_map<string, map1> map2;
我想在map1中插入一个元素,而不需要使用IF语句来检查它是否已经存在。然而,我有点困惑,因为map2没有值,除非你已经有了map1元素,但map1元素来自map2(如果它已经存在的话)。
做这件事最干净的方法是什么?
如果不使用指针,可以在两个映射上都使用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;
}
相关文章:
- 递归无序映射
- 正在将无序映射设置为无序映射的值
- 智能指针作为无序映射键,并通过引用进行比较
- 打印无序映射的第二个元素,即集合
- 由并发无序映射查找线程调用的函数是否安全?
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- 使用无序映射在STL中存储键值对
- 为C++中的无序映射获取给定输入键的错误值
- 将大型对象存储在无序映射中是否效率低下
- 在无序映射的结构化绑定中推导类型
- 使用无序映射进行错误索引
- 将一个向量对放在一个无序映射与一个映射中
- 如何在c++中修改无序映射中的每个值
- C++:使用一对(cpp_int,int)整数作为无序映射中的键(其中cpp_int是boost多精度整数)
- 将 [] 索引到无序映射时出现段错误
- 以std::字符串作为关键字,按字典顺序对一个无序映射进行排序
- 无序映射存储桶的节点大小
- 在无序映射<字符串上使用 find(),向量<string>>与 C++ 中的有序映射花费相同的时间
- 以三个无符号字符为关键字的无序映射
- 无序映射比c++中的映射慢吗