C++ - 将数据插入到地图循环的地图中
C++ - Insert data into map of map loop
在地图循环图中,插入数据的正确方法是什么?
在我的代码中的第一个时刻,我像这样将一些数据插入到我的地图地图中(它的工作很好(:
outMap[TYPE_REQ_USER][req->number] = req;
在此之后,我的地图大小为1。
在第二个时刻,在其他函数中,我需要迭代地图,如果我找到了关键TYPE_REQ_USER
我需要向地图的地图添加新数据。我尝试这样做,但在此之后我打印了地图大小,我们说它的 1 而不是 2(预期(
我的地图循环地图插入数据:
for (outMap_t::iterator itOutMap = outMap.begin(); itOutMap != outMap.end(); ++ itOutMap)
{
for (intMap_t::iterator itInMap = itOutMap->second.begin(); itInMap != itOutMap->second.end(); ++itInMap)
{
if (itOutMap->first == TYPE_REQ_USER)
{
//map insert
outMap[TYPE_REQ_USER][req->number] = req;
}
}
}
那么我的循环插入有什么问题呢?
编辑 2
所以现在对于同一个键(TYPE_REQ_USER(,我可以有两个不同的元素。
所以知道当我尝试迭代映射并删除键的元素时,我遇到了分段错误错误,因为在第一次迭代中我这样做:
qnRunningType_JobId.erase(itOutMap(;
但是在第二次迭代中,我遇到了语义错误错误,因为我正在尝试删除itOutMap
但我们已经在第一次迭代中删除了。
(注释转换为答案以保持完整性(
使用std::map
,插入已存在的项将覆盖现有项。可以通过使用std::map::insert
并检查返回对的第二个项目来检查是否已覆盖项目,如此处所述。
相关文章:
- C++一会儿循环读到地图上 2 行?
- C++ 在地图上循环 - 消失的对象
- 专用地图值的基于范围的 for 循环
- C++ - 将数据插入到地图循环的地图中
- std::在地图上查找无法正常工作并循环访问地图的键和值
- 无法循环访问标准::地图
- 使用相同的 for 循环按升序或降序遍历地图
- 更新OpenMP内部的哈希地图以进行循环
- 我想反转地图的值并使用基于范围的 for 循环打印它
- 循环遍历地图时编译错误
- C++:循环浏览地图并比较键
- 地图元素上的循环范围
- 在Cython的循环中创建C 地图
- 复制地图<双精度,元组<双精度,双精度>>映射<双精度,双精度>没有循环?
- c 之后,地图的循环大小仍然为1
- 我可以使用基于范围的 for 循环轻松迭代地图的值吗?
- 如何在映射向量中循环访问地图
- C++地图上的循环没有检测到地图末端的变化
- C++ 如何在地图中循环设置
- 以结构为键在地图中循环