1. 程式人生 > >c++ list 遍歷刪除節點

c++ list 遍歷刪除節點

c++ list 遍歷中刪除節點

#include<iostream>
#include<list>
using namespace std;

int main()
{
    int a[12] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 10};
    list<int> li(a, a + 12);
    //遍歷刪除值為5的節點
    for (list<int>::iterator it = li.begin(); it != li.end();)
    {
        if (*it == 5)
        {
            li.erase(it++); // 刪除節點,併到下一個節點
        }
        else
        {
            ++it;
        }
    }
    for (list<int>::iterator it = li.begin(); it != li.end(); ++it)
    {
        cout << *it << " ";
    }
    system("pause");
}