假设我有一个std容器,其中包含总共100个元素。 我再从container.My问题取出50元如下下列情况下的迭代器何时失效
1-If the container is a `std::vector` what iterators will become invalidated.
2-If the container is a `std::list` what iterators will become invalidated.
3-If the container is a `std::deque` what iterators will become invalidated.
4-If the container is a `std::map` what iterators will become invalidated.
下面是根据我的理解,请纠正我,如果我错了
1 - 如果50元素被删除的答案在一个向量中,所有的下一个元素将向上移动一个向量,因为向量是一个动态数组,并且是连续的。因此,在第50个索引之前的迭代器将是有效的,并且大于或等于50的迭代器将在删除之后失效
2-如果容器是列表(双链表)并且第50个索引仅在迭代器之后被移除到第50指数将受到影响。
3,如果容器是一个deque我不知道该迭代器将得到无效
4 - 如果容器是一个地图,我相信所有的迭代器将得到无效。
(0-100),因为需要重新排序/排序。如果我错了,请纠正我。
感谢您清理那个 – MistyD