Перевод этой страницы?:

erase

Синтаксис:

    #include <set>
    void erase( iterator pos );
    void erase( iterator start, iterator end );
    size_type erase( const key_type& key );

Функция erase() либо стирает элемент в положении pos, либо стирает элементы между итераторами start и end, либо стирает все элементы, соответствующие заданному ключу key.

В примере erase() используется для стирания всех подходящих элементов и одного явно заданного элемента:

    multiset<int> ms;
    multiset<int>::iterator iter;
    int i;
 
    for (i = 1; i < 5; i++) {
        ms.insert(i);
        ms.insert(i*i);
        ms.insert(i-1);
    }
 
    cout << "было: " ;
    for (iter = ms.begin(); iter != ms.end(); iter++)
        cout << " " << *iter;
    cout << "." << endl;
 
    ms.erase( 1 );
 
    iter = ms.find( 3 );
    if ( iter != ms.end() ) {
        ms.erase( iter );
    }
 
    cout << "стало:" ;
    for (iter = ms.begin(); iter != ms.end(); iter++)
        cout << " " << *iter;
    cout << "." << endl;

Код выведет на экран:

было:  0 1 1 1 2 2 3 3 4 4 9 16.
стало: 0 2 2 3 4 4 9 16.

Обратите внимание, что были удалены все три единицы и только одна тройка.