Compartilhar via


set::emplace_hint

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_hint(
      const_iterator where,
      Args&&... args);

Parâmetros

Parâmetro

Descrição

args

Os argumentos encaminhados para construir um elemento a ser inserido mais comumente no conjunto a menos que o conjunto já contenha esse elemento, ou, a menos que já contenha um elemento cujo valor está ordenado equivalente.

where

O local para iniciar a pesquisa pelo ponto de inserção correto. (Se esse ponto precede imediatamente where, a inserção pode ocorrer em tempo amortizados constantes em vez do tempo logarítmicos.)

Valor de retorno

Um iterador ao elemento inserido recentemente.

Se a inserção falhou porque o elemento já existir, o retornará um iterador ao elemento existente.

Comentários

Nenhuma iterador ou referência são invalidados por essa função.

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

Exemplo

// set_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: " << endl;

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

    cout << endl;
}

int main()
{
    set<string> s1;

    // Emplace some test data
    s1.emplace("Anna");
    s1.emplace("Bob");
    s1.emplace("Carmine");

    cout << "set starting data: ";
    print(s1);
    cout << endl;

    // Emplace with hint
    // s1.end() should be the "next" element after this emplacement
    s1.emplace_hint(s1.end(), "Doug");

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

Saída

set starting data: 3 elements:
(Anna) (Bob) (Carmine)

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

Requisitos

defineCabeçalho: <>

Namespace: std

Consulte também

Referência

<set>

Classe set

Biblioteca de Modelos Padrão