Biblioteca de mapas de C ++ - función erase ()

Descripción

La función C ++ std::multimap::erase() elimina el rango de elementos del multimapa.

Esta función miembro reduce el tamaño de multimapa.

Declaración

A continuación se muestra la declaración de la función std :: multimap :: erase () del encabezado std :: map.

C ++ 11

iterator erase (const_iterator first, const_iterator last);

Parámetros

  • first - Ingrese el iterador a la posición inicial en el rango.

  • last - Ingrese el iterador a la posición final en el rango.

Valor devuelto

Devuelve un iterador que sigue al último elemento eliminado.

Excepciones

No hay efecto en el contenedor si se lanza una excepción.

Complejidad del tiempo

Lineal en la distancia entre el primero y el último .

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: multimap :: erase ().

#include <iostream>
#include <map>

using namespace std;

int main(void) {
   /* Multimap with duplicates */
   multimap<char, int> m {
            {'a', 1},
            {'a', 2},
            {'b', 3},
            {'c', 4},
            {'c', 5},
         };
   cout << "Multimap contains following elements before erase operation" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   auto it = m.begin();
   ++it, ++it;

   it = m.erase(m.begin(), it);

   cout << "Multimap contains following elements after erase operation" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   cout << "After erase operation iterator points to " << it->first 
        << " = " << it->second << endl;

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Multimap contains following elements before erase operation
a = 1
a = 2
b = 3
c = 4
c = 5
Multimap contains following elements after erase operation
b = 3
c = 4
c = 5
After erase operation iterator points to b = 3