Compartilhar via


multimap::emplace

Insere um elemento construído no lugar (nenhuma operação de cópia ou movimentação é executada).

template<class... Args>
   iterator emplace(
      Args&&... args);

Parâmetros

Parâmetro

Descrição

args

Os argumentos encaminhados para construir um elemento a ser inserido em multimap.

Valor de retorno

Um iterador ao elemento inserido recentemente.

Comentários

Nenhuma referência para os elementos do contêiner for invalidada por essa função, mas pode invalidar todos os iteradores ao contêiner.

Se uma exceção é lançada durante a inserção, o contêiner está inalterado e a exceção é rethrown.

value_type de um elemento é um par, de forma que o valor de um elemento é um par ordenado com o primeiro componente igual ao valor de chave e o segundo componente igual ao valor de dados do elemento.

Exemplo

// 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;
}

Saída

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

mapa <deCabeçalho: >

Namespace: std

Consulte também

Referência

<map>

Classe multimap

Biblioteca de Modelos Padrão