我想知道我是否有一个像这样声明的映射,
map<int, int> my_map;
并将end()
迭代器赋值给变量,并且永远不更改
auto end_it = my_map.end()
然后我将通过对my_map
进行多次擦除和插入来改变my_map
,
my_map
的生命周期内是否始终成立?end_it == my_map.end()
std::map::insert保证:
没有迭代器或引用无效。
std::地图::擦除担保:
对已删除元素的引用和迭代器无效。其他引用和迭代器不受影响。
因此,end迭代器应该保持有效。如果使用其他操作,应检查它是否会使迭代器失效。
std::map::swapdoes invalidateend()
迭代器:
所有迭代器和引用仍然有效。end()迭代器无效。