Sdílet prostřednictvím


set::emplace_hint

Vloží prvek vyrobeno na místě (jsou prováděny žádné operace kopírování nebo přesun), naznačuje umístění.

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

Parametry

Parametr

Popis

args

Argumenty předané vytvořit prvek, který chcete vložit do sady Pokud sada již obsahuje tento prvek nebo, obecněji, pokud jej již obsahuje prvek, jehož hodnota je ekvivalentně objednané.

where

Místo zahájení vyhledání správného bodu vložení. (Je-li bezprostředně předchází tomuto bodu where, vložení může dojít včas amortizovaný stálé místo logaritmické času.)

Vrácená hodnota

Iterace nově vloženého prvku.

Pokud vložení se nezdařilo, protože prvek již existuje, vrátí iterace existujícího elementu.

Poznámky

Touto funkcí nejsou zneplatněny žádné iterátory nebo odkazy.

Pokud je během umístění vyvolána výjimka, není stav kontejneru změněn.

Příklad

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

Výsledek

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

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

Požadavky

Hlavička: <set>

Obor názvů: std

Viz také

Referenční dokumentace

<set>

set – třída

Standardní knihovna šablon