插入到C++中的嵌套映射中
Inserting into nested map in C++
>假设我有一个指针类型的嵌套映射。那么是否有单行语句插入到嵌套映射中,
map<int, map<int, int> >* nestedMap;
目前,我分两步完成此操作。首先创建内部地图,然后插入外部地图,如下所示,
nestedMap->insert(make_pair(int, map<int, int>)(int, innermap));
如果地图不是指针类型,那么我可以像这样轻松插入,
nestedMap[int][int] = int;
有没有简单的方法可以插入指针类型的嵌套地图?
谢谢Prabu
如果键
/值对不存在,map::operator[]
会自动创建键/值对><。(这就是为什么它不是常量!因此,您无需手动创建内部地图。
如果要避免自动创建对,请使用 map::find()
或 map::at()
。
我相信最简单的单行是:
(*nestedMap)[int][int] = int;
如果我正确理解您的问题,您实际上可以使用引用而不是指针。嵌套地图没有问题,而是外层地图。
看到下面的代码,是你想要的吗?
map<int, map<int, int> >* nestedMap = new map<int, map<int, int> >;
map<int, map<int, int> > &nestedMapAlais = *nestedMap;
nestedMapAlais[1][2] = 3;
通过
->
访问operator[]
:
nestedMap->operator[](5)[6] = 7;
这类似于
nestedMap[5][6] = 7;
如果nestedMap
不是指针。
请注意,在这两种情况下,您都不必显式插入映射。
相关文章:
- 在C++中搜索嵌套多映射值
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果我将嵌套映射作为多重映射的值,如何将值插入内部映射?
- 迭代嵌套映射与范围为循环:没有名为"first"的成员
- 如何在嵌套映射(C++)中高效地查找密钥
- c++ 嵌套结构映射找不到成员
- 在结构的嵌套映射上链接运算符 []
- 访问range_expression中的嵌套元素会返回不完整的映射(段错误)
- 如何同时从嵌套映射中检索键字符串
- YAML-cpp 解析嵌套映射和序列错误
- 嵌套映射迭代器
- 引用映射中嵌套对中的值
- 插入到C++中的嵌套映射中
- c++嵌套映射不匹配成员函数const成员
- 如何给嵌套映射赋值
- 属性传播到嵌套映射
- 如何在C++中转储嵌套映射以进行调试
- 在 C++ 中删除嵌套映射中的条目
- 如何在c++中插入数据到嵌套映射
- Yaml-cpp(新API) -嵌套映射/序列组合和迭代