Compartir a través de


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

Vea también

Referencia

<map>

multimap (Clase)

Biblioteca de plantillas estándar