Sdílet prostřednictvím


set::insert

Vloží prvek nebo prvky rozsah sadu.

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

Parametry

Parametr

Description

_Val

Hodnota elementu vkládá do sady, pokud již obsahuje sadu prvku nebo obecněji, jehož klíč je equivalently objednané prvek.

_Where

Zahájeno hledání správné bod vložení na místo.(Vložení může dojít v amortized dobu konstantní, místo logaritmické času, pokud bod vložení následuje _Where.)

_First

Pozice první prvek zkopírovat ze sady.

_Last

Pozice za poslední prvek zkopírovat ze sady.

Vrácená hodnota

První Vložit členské funkce vrátí pár, jehož komponenty bool vrátí true Pokud kurzor a false -li sadu již obsahuje prvek, jehož klíč bylo odpovídající hodnoty v pořadí a jejichž součásti iterace vrátí adresu, kde byl vložen nový prvek nebo kde prvek již byl umístěn.

Druhý Vložit členské funkce vrátí iterátoru, která odkazuje na umístění, kde byl vložen nový prvek do sady.

Funkce posledních dvou členů se chovají stejně jako první dva kromě val se používá pro sestavení vložené hodnoty.

Poznámky

Třetí členské funkce vloží posloupnost hodnot prvků do sady odpovídající každému prvku adresovány iterace v rozsahu [_First, _Last) zadanou sadu.

Příklad

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

Požadavky

Záhlaví: <set>

Obor názvů: std

Viz také

Referenční dokumentace

set Class

Standardní šablona knihovny