C++ list remove對(duì)迭代器的影響

c++
小樊
112
2024-07-21 10:10:02
欄目: 編程語言

在C++中,使用std::list::remove()函數(shù)可以從列表中刪除所有與給定值相等的元素。這個(gè)函數(shù)會(huì)對(duì)列表進(jìn)行修改,但不會(huì)影響迭代器的有效性。刪除元素后,迭代器仍然可以正確地訪問列表中的元素,并且不會(huì)導(dǎo)致迭代器失效。

以下是一個(gè)簡單的示例,演示了std::list::remove()對(duì)迭代器的影響:

#include <iostream>
#include <list>

int main() {
    std::list<int> myList = {1, 2, 2, 3, 4, 2, 5};

    // 輸出原始列表
    std::cout << "Original list: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 使用remove函數(shù)刪除值為2的元素
    myList.remove(2);

    // 輸出修改后的列表
    std::cout << "List after removing '2': ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

在這個(gè)示例中,std::list::remove(2)函數(shù)將列表中所有值為2的元素刪除。即使在刪除元素的同時(shí)遍歷列表,迭代器仍然可以正確地訪問列表中的元素。

0