Udostępnij za pośrednictwem


set::emplace_hint

Wstawia element skonstruowany w miejscu (bez wykonania żadnej czynności kopiowania ani przenoszenia) ze wskazówką położenia.

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

Parametry

Parametr

Opis

args

Argumenty przekazywane do konstruowania elementu do wstawienia do zestawu, chyba że zestaw zawiera już ten element lub, bardziej ogólnie, chyba że już zawiera element, którego wartość jest równoważnie uporządkowana.

where

Miejsce, w którym należy rozpocząć wyszukiwanie poprawnego punktu wstawiania. (Jeśli ten punkt bezpośrednio poprzedza where, wstawianie może wystąpić w stałym, amortyzowanym czasie zamiast czasu logarytmicznego.)

Wartość zwracana

Iterator do nowo wstawionego elementu.

Jeśli wstawianie się nie powiodło, ponieważ element już istnieje, zwraca iterator do istniejącego elementu.

Uwagi

Żadne iteratory ani odwołania nie są unieważniane przez tę funkcję.

Podczas umieszczenia, jeśli zgłoszono wyjątek, stan kontenera nie jest modyfikowany.

Przykład

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

Dane wyjściowe

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

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

Wymagania

Nagłówek: <set>

Przestrzeń nazw: std

Zobacz też

Informacje

<set>

set — Klasa

Standardowa biblioteka szablonów