Sdílet prostřednictvím


set::emplace

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

template<class... Args>
    pair<iterator, bool> emplace(
        Args&&... args
);

Parametry

Parametr

Popis

args

Argumenty předané vytvořit prvek, který chcete vložit do sady již neobsahuje element, jehož hodnota je ekvivalentně objednané.

Vrácená hodnota

A pár jehož komponenty bool vrací true, pokud byla vytvořena vložení a false Pokud mapy již obsahuje prvek, jehož hodnota byla ekvivalentní hodnota v pořadí.Součásti iterace vrácená hodnota dvojice vrátí adresu, kde byl vložen nový prvek, (Pokud je součástí bool true) nebo kde prvek již byl umístěn (je-li součást logická hodnota je false).

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: ";

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

    cout << endl;
}

int main()
{
    set<string> s1;

    auto ret = s1.emplace("ten");

    if (!ret.second){
        cout << "Emplace failed, element with value \"ten\" already exists."
            << endl << "  The existing element is (" << *ret.first << ")"
            << endl;
        cout << "set not modified" << endl;
    }
    else{
        cout << "set modified, now contains ";
        print(s1);
    }
    cout << endl;

    ret = s1.emplace("ten");

    if (!ret.second){
        cout << "Emplace failed, element with value \"ten\" already exists."
            << endl << "  The existing element is (" << *ret.first << ")"
            << endl;
    }
    else{
        cout << "set modified, now contains ";
        print(s1);
    }
    cout << endl;
}

Výsledek

set modified, now contains 1 elements: (ten)

Emplace failed, element with value "ten" already exists.
  The existing element is (ten)

Požadavky

Hlavička: <set>

Obor názvů: std

Viz také

Referenční dokumentace

<set>

set – třída

Standardní knihovna šablon