set::insert
Fügt ein Element oder einen Bereich von Elementen in einen Satz von ein.
pair<iterator, bool> insert(
const value_type& _Val
);
iterator insert(
iterator _Where,
const value_type& _Val
);
template<class InputIterator>
void insert(
InputIterator _First,
InputIterator _Last
);
template<class ValTy>
pair<iterator, bool> insert(
ValTy&& _Val
);
template<class ValTy>
iterator insert(
const_iterator _Where,
ValTy&& _Val
);
Parameter
Parameter |
Description |
_Val |
Der Wert eines in das Sätze einzufügende Elements, es sei denn, der Satz bereits dieses Element oder, im Allgemeinen, ein Element enthält, dessen Schlüssel gleichwertig sortiert wird. |
_Where |
Der Position, an der das Suchen für den richtigen Punkt der Einfügung zu starten.(Einfügung kann in amortisierter konstanter Zeit, anstelle von logarithmischen Zeit auftreten, wenn die Einfügemarke sofort _Where folgt.) |
_First |
Die Position des ersten Elements, einem Satz kopiert werden. |
_Last |
Die Position direkt über dem letzten Element hinaus, einem Satz kopiert werden. |
Rückgabewert
Die erste insert-Memberfunktion gibt ein Paar zurück, dessen bool Komponente true zurückgibt, wenn eine Einfügung und false ausgeführt wurde, wenn der Satz bereits ein Element enthält, dessen Schlüssel einen ein in der Reihenfolge verfügt und dessen Iteratorkomponente die Adresse zurückgibt, in der ein neues Element eingefügt wurde, oder der das Element bereits gefunden wurde.
Die zweite insert-Memberfunktion gibt einen Iterator zurück, der der Position zeigt, in der das neue Element in das Sätze eingefügt wurde.
Die letzten zweiköpfigen Funktionen verhalten sich genauso wie die ersten zwei, außer dass val wird verwendet, um den eingefügten Wert zu erstellen.
Hinweise
Die dritte Memberfunktion fügt die Sequenz von Elementwerten in einen Satz von nach jedem Element, das durch einen Iterator in des Bereichs [_First, _Last) behandelt wird einer bestimmten Gruppe.
Beispiel
// set_insert.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
#include <string>
int main( )
{
using namespace std;
set <int>::iterator s1_pIter, s2_pIter;
set <int, less<int> > s1, s2;
s1.insert( 10 );
s1.insert( 20 );
s1.insert( 30 );
s1.insert( 40 );
cout << "The original s1 =";
for ( s1_pIter = s1.begin( ); s1_pIter != s1.end( ); s1_pIter++ )
cout << " " << *s1_pIter;
cout << "." << endl;
pair< set<int>::iterator, bool > pr;
pr = s1.insert( 10 );
if(pr.second == true)
{
cout << "The element 10 was inserted in s1 successfully."
<< endl;
}
else
{
cout << "The element 10 already exists in s1 and"
<< " *( pr.first ) = " << *( pr.first ) << "." << endl;
}
s1.insert( --s1.end( ), 50 );
cout << "After the insertions, s1 =";
for ( s1_pIter = s1.begin( ); s1_pIter != s1.end( ); s1_pIter++ )
cout << " " << *s1_pIter;
cout << "." << endl;
s2.insert( 100 );
s2.insert( ++s1.begin( ), --s1.end( ) );
cout << "s2 =";
for ( s2_pIter = s2.begin( ); s2_pIter != s2.end( ); s2_pIter++ )
cout << " " << *s2_pIter;
cout << "." << endl;
// Construct by moving
set<string> s3, s4;
string str1("a"), str2("b");
s3.insert(move(str1));
cout << "After the move insertion, s3 contains: "
<< *s3.begin() << endl;
s4.insert(s4.begin(), move(str2));
cout << "After the move insertion, s4 contains: "
<< *s4.begin() << endl;
}
Anforderungen
Header: <set>
Namespace: std