-4

可能重复:
迭代器失效规则

想象一下,我有一个map<int, int>. 不知何故,我检索了一个指向pair<35,37>地图中条目的迭代器。我将此迭代器保存为map<int, int>::iterator _my_iterator3537.

在那之后,我在地图上做了很多插入。_my_iterator3537还在指着吗pair<35,37>

4

1 回答 1

3

来自文档:

Map 有一个重要的属性,即在 map 中插入一个新元素不会使指向现有元素的迭代器失效。

从映射中擦除元素也不会使任何迭代器无效,当然,除了实际指向正在被擦除的元素的迭代器。

从标准:23.1.2/8

插入成员不应影响迭代器和对容器的引用的有效性,而擦除成员应仅使迭代器和对被擦除元素的引用无效。

于 2012-11-07T21:02:45.817 回答