Multimap en STL C ++

C ++ STL | Multimap : En este tutorial, vamos a aprender sobre la multimap, lo que es multimap en STL C ++ junto con sus casos de aplicación y uso?

multimap en C ++

C ++ STL es una funcionalidad enriquecida que es similar a la colección de Java que nos proporciona la caja de negro de una función de estructuras de datos a utilizar en nuestros códigos. Se ahorra 100 líneas para escribir y STL es una característica popular y la ventaja de C ++ ampliamente utilizado en la programación competitiva.

Los que están familiarizados con STL C ++ debe haber utilizado el mapa STL y unordered_map como parte de su uso de la codificación.

Multimapa es una versión ampliada del mapa que puede ser muy útil en muchos casos. excavación Vamos en la comparación de b / w mapa y multimap para conseguir la adecuada comprensión.

Vamos a seguir el siguiente ejemplo.

decir que tenemos 5 teclas con los valores correspondientes gustaría a continuación,

Multimap in C++ STL - 4

mapa de uso de STL Vamos a almacenar los anteriores.

Después de insertar primero & lt; clave, valor & gt; emparejar el mapa estará,

Multimap in C++ STL - 5

Ahora, cuando vamos a insertar la siguiente & lt; clave, valor & gt; par, podemos ver que la clave ya existe, por lo que no hará ninguna nueva entrada. Simplemente se actualizará el valor de la clave en el mapa.

Multimap in C++ STL - 6

Así que, después de la inserción similares el mapa class será,

Multimap in C++ STL - 7

Pero lo que si queremos que todas las entradas que persiste entonces qué hacer. Simplemente, los mapas no trabajarán allí. Es por eso que tenemos un multimap en CPP STL. En multimap, podemos tener diferentes presentaciones a partir de incluso la misma clave. Así, las claves con diferentes valores tendrán una entrada separada en multimap y que y rsquo; s el poder de multimap.

Por lo tanto, cada vez que necesite para almacenar cada uno distinto & lt; clave, valor & gt; emparejamos podemos utilizar Multimapa en estos casos.

Así que después de entrar en las entradas anteriores del multimap class será como,

Multimap in C++ STL - 8

Multimapa también almacena las claves en forma ordenada y tiene la misma complejidad del tiempo que el mapa.

Para declarar una multimap,

multiplate <int,int> mymap;

A continuación se presentan las funciones disponibles en multimap,

Función
Descripción

borrado () Se utiliza para borrar los elementos.
insert () Se utiliza para insertar elementos.
begin () Se utiliza para obtener un iterador de comenzar.
final () Se utiliza para obtener un iterador a extremo.
vaciar () Se utiliza para comprobar si el multimap está vacía o no.
size () Se utiliza para obtener el tamaño de la multimap.
maxsize () Se usa para obtener el tamaño máximo.
límite distinto () Se utiliza para obtener el iterador para el límite inferior.
de límite superior () Se utiliza para obtener el iterador a la cota superior.

Leer más …

  • Multimapa inserción (), borrar () en C ++ STL
  • Multimapa encontrar (), de límite distinto (), de límite superior () en STL C ++

C ++ aplicación de multimap

#include <bits/stdc++.h>
using namespace std;
int main()
{
multimap<int, int> mymultimap;
map<int, int> mymap;
//insertion in map
mymap[2] = 10;
mymap[2] = 12;
mymap[3] = 13;
mymap[3] = 14;
mymap[4] = 15;
//insertion in multimap
mymultimap.insert(make_pair(2, 10));
mymultimap.insert(make_pair(2, 12));
mymultimap.insert(make_pair(3, 13));
mymultimap.insert(make_pair(3, 14));
mymultimap.insert(make_pair(4, 15));
cout << "Printing the mapn";
for (auto it = mymap.begin(); it != mymap.end(); it++) {
cout << "key: " << it->first << ", value: " << it->second << endl;
}
cout << "Printing the multimapn";
for (auto ij = mymultimap.begin(); ij != mymultimap.end(); ij++) {
cout << "key: " << ij->first << ", value: " << ij->second << endl;
}
return 0;
}

salida:

Printing the map
key: 2, value: 12
key: 3, value: 14
key: 4, value: 15
Printing the multimap
key: 2, value: 10
key: 2, value: 12
key: 3, value: 13
key: 3, value: 14
key: 4, value: 15


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *