set::insert
Inserire un elemento o un intervallo di elementi in serie.
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
);
Parametri
Parametro |
Descrizione |
_Val |
Il valore di un elemento da inserire in serie a meno che il set già contenere più generale tale elemento, o, un elemento il cui la chiave equivalente è ordinata. |
_Where |
Il posto per avviare ricerca il punto corretto di inserimento.(Inserimento può verificarsi nel tempo costante ammortizzato, anziché tempo logaritmico, se il punto di inserimento immediatamente successivo a _Where). |
_First |
La posizione del primo elemento da un insieme. |
_Last |
La posizione solo oltre l'ultimo elemento da un insieme. |
Valore restituito
La prima funzione membro di insert restituisce una coppia di cui il componente di bool restituisce true se un inserimento sia stato scelto e false se il set contiene già un elemento il cui la chiave ha un valore equivalente in ordine e di cui il componente iteratori restituisce l'indirizzo dove un nuovo elemento è stato inserito o in cui l'elemento è già stato individuato.
La seconda funzione membro insert restituisce un iteratore che indica la posizione in cui il nuovo elemento è stato immesso in serie.
Le ultime due funzioni membro si comportano allo stesso modo dei primi due, ma val viene utilizzato per costruire il valore immesso.
Note
La terza funzione membro inserire la sequenza di valori degli elementi in serie corrispondente a ogni elemento indirizzato mediante un iteratore nell'intervallo [_First, _Last) di un insieme specificato.
Esempio
// 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;
}
Requisiti
intestazione: <set>
Spazio dei nomi: deviazione standard