set::insert
inserta un elemento o un intervalo de elementos en un conjunto.
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
);
Parámetros
Parámetro |
Descripción |
_Val |
El valor de un elemento que se va a insertar en el conjunto a menos que el conjunto ya contiene ese elemento o, más general, un elemento cuya clave equivalente se ordena. |
_Where |
El lugar para iniciar buscar el punto correcto de la inserción.(Inserción puede aparecer en tiempo constante amortizado, en lugar de tiempo logarítmico, si el punto de inserción inmediatamente sigue _Where.) |
_First |
La posición del primer elemento que se va a copiar de un conjunto. |
_Last |
La posición simplemente más allá del último elemento que se va a copiar de un conjunto. |
Valor devuelto
La primera función miembro de inserción devuelve un par cuyo componente bool devuelve TRUE si una inserción se creó y Falso si el conjunto ya contenía un elemento cuya clave tenía un valor equivalente en orden, y cuyo componente de iterador devuelve la dirección donde un nuevo elemento se ha insertado o donde el elemento se ha adaptado ya.
La segunda función miembro de inserción devuelve un iterador que señale a la posición donde el nuevo elemento se ha insertado en el conjunto.
Las dos últimas funciones miembro se comportan igual que los dos primeros, salvo que val se utiliza para construir el valor insertado.
Comentarios
La tercera función miembro inserta la secuencia de valores de un conjunto correspondiente a cada elemento dirigido por un iterador en el intervalo [_First, _Last) de un conjunto especificado.
Ejemplo
// 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;
}
Requisitos
encabezado: <conjunto>
espacio de nombres: std