Freigeben über


multiset::emplace

Fügt ein Element mit einem Platzierungshinweis ein, das vor Ort erstellt wird (Es werden keine Kopier- oder Verschiebevorgänge ausgeführt).

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

Parameter

Parameter

Beschreibung

args

Die weitergeleiteten Argumente zur Konstruktion eines Elements, dass in die Multimenge eingefügt werden soll.

Rückgabewert

Ein Iterator zum neu eingefügten Element.

Hinweise

Von dieser Funktion werden keine Verweise auf Containerelemente für ungültig erklärt, aber möglicherweise werden alle Iteratoren für den Containers für ungültig erklärt.

Wird während des Einbaus eine Ausnahme ausgelöst, wird der Zustand des Containers nicht geändert.

Beispiel

// multiset_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()
{
    multiset<string> s1;

    s1.emplace("Anna");
    s1.emplace("Bob");
    s1.emplace("Carmine");

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

    s1.emplace("Bob");

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

Ausgabe

multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)

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

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

<set>

set-Klasse

Standardvorlagenbibliothek