map<int, int> mapa;
for (size_t i = 0; i < 3; i++) {
mapa[i] = i + 10;
}
for (map<int, int>::iterator it = mapa.begin(); it != mapa.end();) {
mapa.erase(it->first);
}上面代码报错:Expression: map/set iterator not incrementable
解决途径:
map<int, int> mapa;
for (size_t i = 0; i < 3; i++) {
mapa[i] = i + 10;
}
for (map<int, int>::iterator it = mapa.begin(); it != mapa.end(); it = mapa.begin()) {
mapa.erase(it->first);
}
本文介绍了一段C++代码中使用map容器时出现的迭代器失效问题及其解决方案。通过修改迭代删除的方式,避免了因直接在迭代过程中调用erase导致的迭代器不可递增错误。

465

被折叠的 条评论
为什么被折叠?



