Partilhar via


map::erase

Remove um elemento ou um intervalo de elementos em um mapa das posições especificadas ou removendo os elementos que correspondem a uma chave especificada.

iterator erase(
   iterator _Where
);
iterator erase(
   iterator _First,
   iterator _Last
);
size_type erase(
   const key_type& _Key
);

Parâmetros

  • _Where
    Posição do elemento ser removido do mapa.

  • _First
    A posição do primeiro elemento removeu de mapa.

  • _Last
    Posicione apenas além do último elemento removido do mapa.

  • _Key
    O valor da chave de elementos a serem removidos do mapa.

Valor de retorno

Para as primeiras duas funções de membro, um iterador bidirecional que designa o primeiro elemento que permanece além de todos os elementos, removidos ou um ponteiro ao final do mapa se nenhum tal elemento existe.

ObservaçãoObservação

Esse tipo de retorno não está de acordo com o padrão C++.

Para a terceira função de membro, retorna o número de elementos que tenham sido removidos do mapa.

Comentários

Em alguns casos, esse método pode lançar uma exceção de out_of_range .

Exemplo

A o criar este exemplo com o sinalizador de /Wp64 ou em uma plataforma de 64 bits, o compilador que avisará C4267 será gerado.Para obter mais informações sobre este aviso, consulte C4267 de aviso (nível 3) do compilador.

// map_erase.cpp
// compile with: /EHsc
#include <map>
#include <iostream>

int main()
{
    using namespace std;
    map<int, int> m1, m2, m3;
    map<int, int>::iterator pIter, Iter1, Iter2;
    int i;
    map<int, int>::size_type n;
    typedef pair<int, int> Int_Pair;

    for (i = 1; i < 5; i++)
    {
        m1.insert(Int_Pair(i, i));
        m2.insert(Int_Pair(i, i*i));
        m3.insert(Int_Pair(i, i-1));
    }

    // The 1st member function removes an element at a given position
    Iter1 = ++m1.begin();
    m1.erase(Iter1);

    cout << "After the 2nd element is deleted, the map m1 is:";
    for (pIter = m1.begin(); pIter != m1.end(); pIter++)
        cout << " " << pIter->second;
    cout << "." << endl;

    // The 2nd member function removes elements
    // in the range [_First, _Last)
    Iter1 = ++m2.begin();
    Iter2 = --m2.end();
    m2.erase(Iter1, Iter2);

    cout << "After the middle two elements are deleted,"
         << " the map m2 is:";
    for (pIter = m2.begin(); pIter != m2.end(); pIter++)
        cout << " " << pIter->second;
    cout << "." << endl;

    // The 3rd member function removes elements with a given _Key
    n = m3.erase(2);

    cout << "After the element with a key of 2 is deleted,\n"
         << "the map m3 is:";
    for (pIter = m3.begin(); pIter != m3.end(); pIter++)
        cout << " " << pIter->second;
    cout << "." << endl;

    // The 3rd member function returns the number of elements removed
    cout << "The number of elements removed from m3 is: "
         << n << "." << endl;

    // The dereferenced iterator can also be used to specify a key
    Iter1 = ++m3.begin();
    m3.erase(Iter1);

    cout << "After another element with a key equal to that"
         << endl;
    cout  << "of the 2nd element is deleted, "
          << "the map m3 is:";
    for (pIter = m3.begin(); pIter != m3.end(); pIter++)
        cout << " " << pIter->second;
    cout << "." << endl;
}
  
  
  
  
  

Requisitos

Cabeçalho: <map>

namespace: STD

Consulte também

Referência

map Class

map::max_size, map::clear, map::erase, e map::size

Standard Template Library