multimap::emplace
Inserta un elemento construido en contexto (no se realiza ninguna operación de copia o de movimiento).
template<class... Args>
iterator emplace(
Args&&... args);
Parámetros
Parámetro |
Descripción |
args |
Argumentos reenviados para construir un elemento que se va a insertar en la asignación múltiple. |
Valor devuelto
Iterador al elemento recién insertado.
Comentarios
Esta función no invalida ninguna referencia a elementos contenedores, pero puede invalidar todos los iteradores al contenedor.
Si se produce una excepción durante la inserción, el contenedor permanece inalterado y la excepción se vuelve a iniciar.
El value_type de un elemento es un par, de modo que el valor de un elemento será un par ordenado en el que el primer componente es igual que el valor de clave y el segundo componente es igual que el valor de datos del elemento.
Ejemplo
// multimap_emplace.cpp
// compile with: /EHsc
#include <map>
#include <string>
#include <iostream>
using namespace std;
template <typename M> void print(const M& m) {
cout << m.size() << " elements: " << endl;
for (const auto& p : m) {
cout << "(" << p.first << "," << p.second << ") ";
}
cout << endl;
}
int main()
{
multimap<string, string> m1;
m1.emplace("Anna", "Accounting");
m1.emplace("Bob", "Accounting");
m1.emplace("Carmine", "Engineering");
cout << "multimap modified, now contains ";
print(m1);
cout << endl;
m1.emplace("Bob", "Engineering");
cout << "multimap modified, now contains ";
print(m1);
cout << endl;
}
Resultados
multimap modified, now contains 3 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering)
multimap modified, now contains 4 elements:
(Anna,Accounting) (Bob,Accounting) (Bob,Engineering) (Carmine,Engineering)
Requisitos
Encabezado: <map>
Espacio de nombres: std