Compartir a través de


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

Vea también

Referencia

set Class

Biblioteca de plantillas estándar