假設我有一個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