只是想知道我是否有这样声明的地图,
map<int, int> my_map;
Run Code Online (Sandbox Code Playgroud)
并将end()迭代器分配给变量,并且永不更改,
auto end_it = my_map.end()
Run Code Online (Sandbox Code Playgroud)
然后稍后我将my_map通过多次擦除和插入来更改my_map,下面的内容在其生命周期内是否始终保持不变my_map?
end_it == my_map.end()
Run Code Online (Sandbox Code Playgroud)
没有迭代器或引用无效。
对已擦除元素的引用和迭代器无效。其他引用和迭代器不受影响。
因此,结束迭代器应该保持有效。如果您使用任何其他操作,您应该检查它是否可能使迭代器无效。