Condividi tramite


set::emplace_hint

Inserisce un elemento costruito in locale (senza che vengano eseguite operazioni di copia o di spostamento), con un suggerimento di posizione.

template<class... Args>
   iterator emplace_hint(
      const_iterator where,
      Args&&... args);

Parametri

Parametro

Descrizione

args

Gli argomenti inoltrati per costruire un elemento da inserire in un set a meno che il set non contenga già tale elemento, o più in generale, a meno che non contenga già un elemento il cui valore sia equivalentemente ordinato.

where

La posizione per avviare la ricerca per il punto di inserimento corretto. (Se tale punto è immediatamente seguito da where, l'inserimento può verificarsi in tempo costante ammortizzato invece che in tempo logaritmico.)

Valore restituito

Un iteratore all'elemento appena inserito.

Se l'inserimento ha avuto esito negativo perché l'elemento esiste già, restituisce un iteratore all'elemento esistente.

Note

Nessun iteratore o puntatore, viene invalidato da questa funzione.

Durante il collocamento, se viene generata un'eccezione, lo stato del contenitore non viene modificato.

Esempio

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

Output

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

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

Requisiti

Intestazione: <set>

Spazio dei nomi: std

Vedere anche

Riferimenti

<set>

Classe set

Libreria di modelli standard