Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 迭代器失效规则
想象一下,我有一个map<int, int>. 不知何故,我检索了一个指向pair<35,37>地图中条目的迭代器。我将此迭代器保存为map<int, int>::iterator _my_iterator3537.
map<int, int>
pair<35,37>
map<int, int>::iterator _my_iterator3537
在那之后,我在地图上做了很多插入。_my_iterator3537还在指着吗pair<35,37>?
_my_iterator3537
来自文档:
Map 有一个重要的属性,即在 map 中插入一个新元素不会使指向现有元素的迭代器失效。 从映射中擦除元素也不会使任何迭代器无效,当然,除了实际指向正在被擦除的元素的迭代器。
Map 有一个重要的属性,即在 map 中插入一个新元素不会使指向现有元素的迭代器失效。
从映射中擦除元素也不会使任何迭代器无效,当然,除了实际指向正在被擦除的元素的迭代器。
从标准:23.1.2/8
插入成员不应影响迭代器和对容器的引用的有效性,而擦除成员应仅使迭代器和对被擦除元素的引用无效。