El map::insert() es una función integrada en C++ STL que se usa para insertar elementos con una clave particular en el contenedor del mapa.
- Sintaxis:
iterator map_name.insert({key, element})
Parámetros: la función acepta un par que consta de una clave y un elemento que se insertará en el contenedor del mapa. La función no inserta la clave y el elemento en el mapa si la clave ya existe en el mapa.
Valor devuelto: la función devuelve un iterador que apunta al nuevo elemento en el contenedor.
A continuación se muestra la ilustración de la sintaxis anterior:
C++
// C++ program to illustrate // map::insert({key, element}) #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); mp.insert({ 3, 60 }); // does not inserts key 2 with element 20 mp.insert({ 2, 20 }); mp.insert({ 5, 50 }); // prints the elements cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
KEY ELEMENT 1 40 2 30 3 60 5 50
- Sintaxis:
iterator map_name.insert(iterator position, {key, element})
Parámetros: La función acepta dos parámetros que se describen a continuación:
- {clave, elemento}: Esto especifica un par que consta de una clave y un elemento que se insertará en el contenedor del mapa.
- posición: No especifica la posición donde se va a realizar la inserción, solo apunta a una posición desde donde se va a iniciar la operación de búsqueda de inserción para agilizar el proceso. La inserción se realiza según el orden que sigue el contenedor del mapa.
Valor devuelto:
C++
// C++ program to illustrate // map::insert(iteratorposition, {key, element}) #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); auto it = mp.find(2); // inserts {3, 60} starting the search from // position where 2 is present mp.insert(it, { 3, 60 }); // prints the elements cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
Producción:
KEY ELEMENT 1 40 2 30 3 60
- Sintaxis:
iterator map_name.insert(iterator position1, iterator position2)
Parámetros: La función acepta dos parámetros position1 y position2 que especifican el rango de elementos. Todos los elementos del rango [posición 1, último] se insertan en otro contenedor de mapas.
Valor devuelto: la función devuelve un iterador que apunta al nuevo elemento en el contenedor.
A continuación se muestra la ilustración de la sintaxis anterior:
C++
// C++ program to illustrate // map::insert(iteratorposition1, iteratorposition2) #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp, mp1; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); // inserts all elements in range // [begin, end) in mp1 mp1.insert(mp.begin(), mp.end()); // prints the elements cout << "Elements in mp1 are\n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp1.begin(); itr != mp1.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
Elements in mp1 are KEY ELEMENT 1 40 2 30