gpt4 book ai didi

c++ - 映射/设置迭代器在 C++ 中不可递增错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:01:34 25 4
gpt4 key购买 nike

当我执行以下代码时,出现 map/set iterators not incrementable 错误。

typedef std::multimap<int, int> MapType;

assgnt::MapType my_map;
assgnt::MapType::iterator it;
for(it = my_map.begin(); it != my_map.end(); )
{
my_map = obj1.addGoodNeighbours(it->first, it->second, my_map);
++it;
}

请帮忙

最佳答案

我不知道 assgnt::MapType 是什么,但是在 for 循环中将另一个 assgnt::MapType 分配给 my_map , 不可能是好事:

my_map = obj1.addGoodNeighbours(it->first, it->second, my_map); 

您应该至少重新分配迭代器:

for(it = my_map.begin(); it != my_map.end(); ++it;) {
my_map = obj1.addGoodNeighbours(it->first, it->second, my_map);
it = my_map.begin();
}

但我认为代码远非正确。您基本上是在迭代时破坏正在迭代的结构。

编辑:好吧,我们现在确实知道什么是 MapType。以上所有内容仍然正确。您不能在迭代 map 时重新分配 map 。

关于c++ - 映射/设置迭代器在 C++ 中不可递增错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764058/

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