Erasing Elements in a list : list erase « list « C++ Tutorial






#include <list>
#include <iostream>

using namespace std;

void PrintListContents (const list <int>& listInput);

int main ()
{
    std::list <int> listIntegers;

    listIntegers.push_front (4);
    listIntegers.push_front (3);

    // Store an iterator obtained in using the 'insert' function
    list <int>::iterator iElementValueTwo;
    iElementValueTwo = listIntegers.insert (listIntegers.begin (), 2);

    listIntegers.push_front (1);
    listIntegers.push_front (0);

    // Insert an element at the end...
    listIntegers.push_back (5);

    cout << "Initial contents of the list:" << endl;
    PrintListContents (listIntegers);

    listIntegers.erase (listIntegers.begin (), iElementValueTwo);
    cout << "Contents after erasing a range of elements:" << endl;
    PrintListContents (listIntegers);

    cout<<"Contents after erasing element '"<<*iElementValueTwo<<"':"<<endl;
    listIntegers.erase (iElementValueTwo);
    PrintListContents (listIntegers);

    listIntegers.erase (listIntegers.begin (), listIntegers.end ());
    cout << "Contents after erasing a range:" << endl;
    PrintListContents (listIntegers);

    return 0;
}

void PrintListContents (const list <int>& listInput)
{
    if (listInput.size () > 0)
    {
        std::list <int>::const_iterator i;
        for ( i = listInput.begin (); i != listInput.end (); ++ i )
            cout << *i << " ";
    }
    else
        cout << "List is empty!" << endl;
}








17.6.list erase
17.6.1.erase from begin()
17.6.2.Erasing Elements in a list
17.6.3.listAnother.erase(listAnother.begin(), listAnother.end());
17.6.4.Demonstrating the STL list erase function