Compartilhar via


multiset::emplace

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

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 multiset.

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.

Durante a inserção, se uma exceção é gerada, o estado do contêiner não é alterado.

Exemplo

// multiset_emplace.cpp
// compile with: /EHsc
#include <set>
#include <string>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    cout << s.size() << " elements: ";

    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    multiset<string> s1;

    s1.emplace("Anna");
    s1.emplace("Bob");
    s1.emplace("Carmine");

    cout << "multiset modified, now contains ";
    print(s1);
    cout << endl;

    s1.emplace("Bob");

    cout << "multiset modified, now contains ";
    print(s1);
    cout << endl;
}

Saída

multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)

multiset modified, now contains 4 elements: (Anna) (Bob) (Bob) (Carmine)

Requisitos

defineCabeçalho: <>

Namespace: std

Consulte também

Referência

<set>

Classe set

Biblioteca de Modelos Padrão