◐ Shell
clean mode source ↗

std::map::erase – cppreference.com

Z cppreference.com

<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>

(1)

void erase( iterator pos );

(do C++11)

iterator erase( const_iterator pos );

(od C++11)
(2)

void erase( iterator first, iterator last );

(do C++11)

iterator erase( const_iterator first, const_iterator last );

(od C++11)

size_type erase( const key_type& key );

(3)

Usuwa wskazane elementy.

1) Usuwa element z pozycji

pos

.

2) Usuwa elementy w zakresie

[first; last)

, który musi być poprawnym zakresem w *this.

3) Usuwa element (jeśli istnieje) z kluczem równym

key

.

Iteratory i referencje do usuwanych elementów zostają unieważnione. Nie ma wpływu na pozostałe iteratory ani referencje.

Iterator pos musi być poprawny i dać się zdereferencjować. Stąd też iterator zakońcowy end() (który jest poprawny, ale nie dereferencjowalny) nie może być użyty jako wartość pos.

Parametry

pos - iterator to the element to remove
first, last - range of elements to remove
key - key value of the elements to remove

Zwracana wartość

1-2) Iterator za ostatni usunięty element.

3) Liczbę usuniętych elementów.

Wyjątki

1,2) (brak)

3) Dowolne wyjątki wyrzucone przez obiekt

Compare

.

Złożoność

Given an instance c of map:

1) Amortyzowana stała

2) log(c.size()) + std::distance(first, last)

3) log(c.size()) + c.count(k)

Przykład

#include <map>
#include <iostream>
int main()
{
    std::map<int, std::string> c = {{1, "one"}, {2, "two"}, {3, "three"},
                                    {4, "four"}, {5, "five"}, {6, "six"}};
    // usuwa wszystkie liczby parzyste z c
    for(auto it = c.begin(); it != c.end(); )
        if(it->first % 2 == 1)
            it = c.erase(it);
        else
            ++it;
    for(auto& p : c)
        std::cout << p.second << ' ';
}

Wynik:

Zobacz także