hash_multimap::insert
Hinweis |
---|
Diese API ist veraltet.Die Alternative ist unordered_multimap Class. |
Fügt ein Element oder einen Bereich von Elementen in ein hash_multimap ein.
iterator insert(
const value_type& _Val
);
iterator insert(
const_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 das hash_multimap einzufügende Elements, es sei denn, das hash_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 ersten beiden insert-Memberfunktionen geben einen Iterator zurück, der der Position zeigt, in der das neue Element eingefügt wurde.
Die letzten zwei insert-Memberfunktionen verhalten sich genauso wie die ersten zwei, außer dass sie verschieben Konstrukt der eingefügte Wert.
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 in des Bereichs [_First, _Last) behandelt wird einer bestimmten Gruppe.
Beispiel
// hash_multimap_insert.cpp
// compile with: /EHsc
#include <hash_map>
#include <iostream>
#include <string>
int main( )
{
using namespace std;
using namespace stdext;
hash_multimap <int, int>::iterator hm1_pIter, hm2_pIter;
hash_multimap <int, int> hm1, hm2;
typedef pair <int, int> Int_Pair;
hm1.insert ( Int_Pair ( 1, 10 ) );
hm1.insert ( Int_Pair ( 2, 20 ) );
hm1.insert ( Int_Pair ( 3, 30 ) );
cout << "The original key values of hm1 =";
for ( hm1_pIter = hm1.begin( ); hm1_pIter != hm1.end( );
hm1_pIter++ )
cout << " " << hm1_pIter -> first;
cout << "." << endl;
cout << "The original mapped values of hm1 =";
for ( hm1_pIter = hm1.begin( ); hm1_pIter != hm1.end( );
hm1_pIter++ )
cout << " " << hm1_pIter -> second;
cout << "." << endl;
hm1.insert ( Int_Pair ( 1, 10 ) );
// The hint version of insert
hm1.insert( --hm1.end( ), Int_Pair ( 4, 40 ) );
cout << "After the insertions, the key values of hm1 =";
for ( hm1_pIter = hm1.begin( ); hm1_pIter != hm1.end( );
hm1_pIter++ )
cout << " " << hm1_pIter -> first;
cout << "," << endl;
cout << " and the mapped values of hm1 =";
for ( hm1_pIter = hm1.begin( ); hm1_pIter != hm1.end( );
hm1_pIter++ )
cout << " " << hm1_pIter -> second;
cout << "." << endl;
hm2.insert ( Int_Pair ( 10, 100 ) );
// The templatized version inserting a range
hm2.insert( ++hm1.begin( ), --hm1.end( ) );
cout << "After the insertions, the key values of hm2 =";
for ( hm2_pIter = hm2.begin( ); hm2_pIter != hm2.end( );
hm2_pIter++ )
cout << " " << hm2_pIter -> first;
cout << "," << endl;
cout << " and the mapped values of hm2 =";
for ( hm2_pIter = hm2.begin( ); hm2_pIter != hm2.end( );
hm2_pIter++ )
cout << " " << hm2_pIter -> second;
cout << "." << endl;
// The templatized versions move constructing elements
hash_multimap<int, string> hm3, hm4;
pair<int, string> is1(1, "a"), is2(2, "b");
hm3.insert(move(is1));
cout << "After the move insertion, hm3 contains:" << endl
<< " " << hm3.begin()->first
<< " => " << hm3.begin()->second
<< endl;
hm4.insert(hm4.begin(), move(is2));
cout << "After the move insertion, hm4 contains:" << endl
<< " " << hm4.begin()->first
<< " => " << hm4.begin()->second
<< endl;
}
Anforderungen
Header: <hash_map>
Namespace: stdext