Partager via


set::insert

Insère un élément ou une plage d'éléments en jeu.

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
);

Paramètres

Paramètre

Description

_Val

La valeur d'un élément à insérer en jeu à moins que le jeu contienne déjà cet élément ou, plus généralement, un élément dont la clé est de façon équivalente classée.

_Where

L'emplacement pour commencer à rechercher le point correct d'implémentation.(L'implémentation peut se produire dans le temps fixe amorti, au lieu du temps logarithmique, si le point d'insertion suit immédiatement _Where.)

_First

Position du premier élément à copier d'un jeu.

_Last

La position immédiatement au delà de le dernier élément à copier d'un jeu.

Valeur de retour

La première fonction membre de insérer retourne une paire de le composant de bool retourne true si une insertion a été effectuée et false si le jeu contenait déjà un élément dont la clé a eu une valeur équivalente dans l'ordre, et dont le composant itérateur retourne l'adresse où un nouvel élément a été inséré ou lorsque l'élément a déjà été localisé.

La deuxième fonction membre de insérer retourne un itérateur qui indique la position où le nouvel élément a été inséré en jeu.

Les deux dernières fonctions membres se comportent de la même manière que les deux premiers, sauf qu' val est utilisé pour construire la valeur insérée.

Notes

La troisième fonction membre insère la séquence de valeurs d'élément en jeu correspondant à chaque élément traité par un itérateur de dans la plage [_First, _Last) d'un jeu spécifié.

Exemple

// 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;
 }
  
  
  
  
  

Configuration requise

en-tête : <set>

l'espace de noms : DST

Voir aussi

Référence

set Class

Modèles Standard