Freigeben über


multimap::insert

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

iterator 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>
   iterator insert(
      ValTy&& _Val
);
template<class ValTy>
   iterator insert(
      const_iterator _Where,
      ValTy&& _Val
);

Parameter

Parameter

Description

_Val

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

_Where

Ein Hinweis hinsichtlich des Position, an der das Suchen für den richtigen Punkt der Einfügung zu starten.

_First

Die Position des ersten Elements, einer Zuordnung kopiert werden.

_Last

Die Position direkt über dem letzten Element hinaus, einer Zuordnung kopiert werden.

Rückgabewert

Die insert-Memberfunktionen gibt einen Iterator zurück, der der Position zeigt, in der das neue Element in die Multimap eingefügt wurde.

Hinweise

value_type eines Elements ist Paaren, sodass der Wert eines Elements ein geordnetes Paar mit der ersten Komponente gleich dem Schlüsselwert und der zweiten Komponente gleich den Datenwert des Elements ist.

Einfügen kann in amortisierter konstanter Zeit für die Hinweisversion Einfüge-, anstelle von logarithmischen Zeit auftreten, wenn die Einfügemarke sofort _Where folgt.

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

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.

Beispiel

// multimap_insert.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   multimap <int, int>::iterator m1_pIter, m2_pIter;

   multimap <int, int> m1, m2;
   typedef pair <int, int> Int_Pair;

   m1.insert ( Int_Pair ( 1, 10 ) );
   m1.insert ( Int_Pair ( 2, 20 ) );
   m1.insert ( Int_Pair ( 3, 30 ) );

   cout << "The original key values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> first;
   cout << "." << endl;

   cout << "The original mapped values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> second;
   cout << "." << endl;

   m1.insert ( Int_Pair ( 1, 10 ) );

   // The hint version of insert
   m1.insert( --m1.end( ), Int_Pair ( 4, 40 )  );

   cout << "After the insertions, the key values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> first;
   cout << "," << endl;

   cout << " and the mapped values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> second;
   cout << "." << endl;

   m2.insert ( Int_Pair ( 10, 100 ) );

   // The templatized version inserting a range
   m2.insert( ++m1.begin( ), --m1.end( ) );

   cout << "After the insertions, the key values of m2 =";
   for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
      cout << " " << m2_pIter -> first;
   cout << "," << endl;

   cout << " and the mapped values of m2 =";
   for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
      cout << " " << m2_pIter -> second;
   cout << "." << endl;

    // The templatized versions move constructing elements
    multimap<int, string> m3, m4;
    pair<int, string> is1(1, "a"), is2(2, "b");

    m3.insert(move(is1));
    cout << "After the move insertion, m3 contains:" << endl
      << " " << m3.begin()->first
      << " => " << m3.begin()->second
      << endl;

    m4.insert(c4.begin(),move(is2));
    cout << "After the move insertion, m4 contains:" << endl
      << " " << m4.begin()->first
      << " => " << m4.begin()->second
      << endl;
}
  
  
  
  
  

Anforderungen

Header: <map>

Namespace: std

Siehe auch

Referenz

multimap Class

Standardvorlagenbibliothek