Freigeben über


set::insert

Fügt ein Element oder einen Bereich von Elementen in einen Satz von ein.

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

Parameter

Parameter

Description

_Val

Der Wert eines in das Sätze einzufügende Elements, es sei denn, der Satz bereits dieses Element oder, im Allgemeinen, ein Element enthält, dessen Schlüssel gleichwertig sortiert wird.

_Where

Der Position, an der das Suchen für den richtigen Punkt der Einfügung zu starten.(Einfügung kann in amortisierter konstanter Zeit, anstelle von logarithmischen Zeit auftreten, wenn die Einfügemarke sofort _Where folgt.)

_First

Die Position des ersten Elements, einem Satz kopiert werden.

_Last

Die Position direkt über dem letzten Element hinaus, einem Satz kopiert werden.

Rückgabewert

Die erste insert-Memberfunktion gibt ein Paar zurück, dessen bool Komponente true zurückgibt, wenn eine Einfügung und false ausgeführt wurde, wenn der Satz bereits ein Element enthält, dessen Schlüssel einen ein in der Reihenfolge verfügt und dessen Iteratorkomponente die Adresse zurückgibt, in der ein neues Element eingefügt wurde, oder der das Element bereits gefunden wurde.

Die zweite insert-Memberfunktion gibt einen Iterator zurück, der der Position zeigt, in der das neue Element in das Sätze eingefügt wurde.

Die letzten zweiköpfigen Funktionen verhalten sich genauso wie die ersten zwei, außer dass val wird verwendet, um den eingefügten Wert zu erstellen.

Hinweise

Die dritte Memberfunktion fügt die Sequenz von Elementwerten in einen Satz von nach jedem Element, das durch einen Iterator in des Bereichs [_First, _Last) behandelt wird einer bestimmten Gruppe.

Beispiel

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

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

set Class

Standardvorlagenbibliothek