unordered_multiset::insert
Fügt Elemente hinzu.
iterator insert(const value_type& val);
iterator insert(iterator where, const value_type& val);
template<class InIt>
void insert(InIt first, InIt last);
template<class ValTy>
iterator insert(ValTy&& val);
template<class ValTy>
iterator insert(const_iterator where, ValTy&& val);
Parameter
Parameter |
Beschreibung |
InIt |
Der Typ der Iterator. |
ValTy |
Der direkte Konstruktorargumenttyp. |
first |
Starten des Bereichs eingefügt werden soll. |
last |
Ende des Bereichs eingefügt werden soll. |
val |
Das einzufügende Wert. |
where |
Wenn Sie im Container eingefügt werden soll (nur Hinweis). |
Hinweise
Die erste val-Memberfunktion fügt das Element in der kontrollierten Sequenz ein, gibt den Iterator zurück, der das eingefügte Element festlegt.Die zweite Memberfunktion gibt insert(val)unter Verwendung where als Startplatz in der kontrollierten Sequenz zurück, die für die Einfügemarke zu suchen.(Einfügung kann möglicherweise etwas schneller auftreten, wenn die Einfügemarke unmittelbar vorausgeht oder where).
Die dritte Memberfunktion fügt die Sequenz von Elementwerten, für jedes where im Bereich [first, last)ein, indem sie insert(*where)aufruft.
Die letzten zweiköpfigen Funktionen verhalten sich wie die ersten beiden Einschränkung, dass val wird verwendet, um den eingefügten Wert zu erstellen.
Wird eine Ausnahme während der Einfügung eines einzelnen Elements ausgelöst wird, wird der Container unverändert lassen und die Ausnahme wird erneut gelöst.Wird eine Ausnahme während der Einfügung mehrerer Elemente ausgelöst wird, wird der Container in einem stabilen Zustand belassen, aber nicht angegeben und die Ausnahme wird erneut gelöst.
Beispiel
// std_tr1__unordered_set__unordered_multiset_insert.cpp
// compile with: /EHsc
#include <unordered_set>
#include <iostream>
#include <string>
typedef std::unordered_multiset<char> Myset;
int main()
{
Myset c1;
c1.insert('a');
c1.insert('b');
c1.insert('c');
// display contents " [c] [b] [a]"
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
// insert with hint and reinspect
Myset::iterator it2 = c1.insert(c1.begin(), 'd');
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
// insert range and inspect
Myset c2;
c2.insert(c1.begin(), c1.end());
for (Myset::const_iterator it = c2.begin();
it != c2.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
// insert new and duplicate, and reinspect
c1.insert('e');
c1.insert('a');
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
// The templatized versions move constructing elements
unordered_multiset< string> c3, c4;
string str1("a"), str2("b");
c3.insert(move(is1));
cout << "After the move insertion, c3 contains: "
<< *c3.begin() << endl;
c4.insert(c4.begin(), move(is2));
cout << "After the move insertion, c4 contains: "
<< *c4.begin() << endl;
return (0);
}
Anforderungen
Header: <unordered_set>
Namespace: std