操作之后,迭代器会失效吗?
可能重复:
迭代器失效规则
想象一下,我有一张map<int, int>
。 不知何故,我检索了一个迭代器,指向映射中的一个入口pair<35,37>
。 我将这个迭代器保存为map<int, int>::iterator _my_iterator3537
。
之后,我在地图上做了很多插入。 _my_iterator3537
是否仍然指向pair<35,37>
?
来自文档:
Map具有将新元素插入到映射中的重要属性不会使指向现有元素的迭代器无效。
从地图擦除元素也不会使任何迭代器失效,当然,除了实际指向正在被擦除的元素的迭代器。
从标准:23.1.2 / 8
插入成员不应影响迭代器和对容器的引用的有效性,并且擦除成员应仅使迭代器和对擦除元素的引用无效。
链接地址: http://www.djcxy.com/p/73341.html