Freigeben über


hash_map::operator

HinweisHinweis

Diese API ist veraltet.Die Alternative ist unordered_map Class.

Fügt ein Element in hash_map mit einem angegebenen Schlüsselwert ein.

Type& operator[](
   const Key& _Key
);
Type& operator[](
   Key&& _Key
);

Parameter

Parameter

Description

_Key

Der Schlüsselwert des Elements, das eingefügt werden soll.

Rückgabewert

Ein Verweis auf den Datenwert des eingefügten Elements.

Hinweise

Wenn der Argumentschlüsselwert nicht gefunden wird, wird diese zusammen mit dem Standardwert des Datentyps eingefügt.

operator[] wird auf dem Ziel in hash_map m mit verwendet werden

m[_Key] = DataValue;

wobei DataValue der Wert mapped_type des Elements mit einem Schlüsselwert von _Key ist.

Wenn er operator[] zu dem Ziel verwendet, gibt der zurückgegebene Verweis nicht an, ob eine Einfügung ein bereits vorhandenen Element geändert oder eine neue erstellt.Die Memberfunktionen Suche und Einfügen können verwendet werden, um zu bestimmen, ob ein Element mit einem bestimmten Schlüssel bereits vor einer Einfügung vorhanden ist.

Beispiel

// hash_map_op_ref.cpp
// compile with: /EHsc
#include <hash_map>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   using namespace stdext;
   typedef pair <const int, int> cInt2Int;
   hash_map <int, int> hm1;
   hash_map <int, int> :: iterator pIter;
   
   // Insert a data value of 10 with a key of 1
   // into a hash_map using the operator[] member function
   hm1[ 1 ] = 10;

   // Compare other ways to insert objects into a hash_map
   hm1.insert ( hash_map <int, int> :: value_type ( 2, 20 ) );
   hm1.insert ( cInt2Int ( 3, 30 ) );

   cout  << "The keys of the mapped elements are:";
   for ( pIter = hm1.begin( ) ; pIter != hm1.end( ) ; pIter++ )
      cout << " " << pIter -> first;
   cout << "." << endl;

   cout  << "The values of the mapped elements are:";
   for ( pIter = hm1.begin( ) ; pIter != hm1.end( ) ; pIter++ )
      cout << " " << pIter -> second;
   cout << "." << endl;

   // If the key already exists, operator[]
   // changes the value of the datum in the element
   hm1[ 2 ] = 40;

   // operator[] will also insert the value of the data
   // type's default constructor if the value is unspecified
   hm1[5];

   cout  << "The keys of the mapped elements are now:";
   for ( pIter = hm1.begin( ) ; pIter != hm1.end( ) ; pIter++ )
      cout << " " << pIter -> first;
   cout << "." << endl;

   cout  << "The values of the mapped elements are now:";
   for ( pIter = hm1.begin( ) ; pIter != hm1.end( ) ; pIter++ )
      cout << " " << pIter -> second;
   cout << "." << endl;

   // opperator[] will also insert by moving a key
   hash_map <string, int> hm2;
   string str("a");
   hm2[move(str)] = 1;
   cout << "The moved key is " << hm2.begin()->first
      << ", with value " << hm2.begin()->second << endl;
}

Ausgabe

The keys of the mapped elements are: 1 2 3.
The values of the mapped elements are: 10 20 30.
The keys of the mapped elements are now: 1 2 3 5.
The values of the mapped elements are now: 10 40 30 0.
The moved key is a, with value 1.

Anforderungen

Header: <hash_map>

Namespace: stdext

Siehe auch

Referenz

hash_map Class

Standardvorlagenbibliothek