Condividi tramite


hash_map::operator

[!NOTA]

Questo API è obsoleto.L'alternativa consiste unordered_map Class.

Inserisce un elemento in hash_map con un valore di chiave specificato.

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

Parametri

Parametro

Descrizione

_Key

Il valore della chiave dell'elemento che deve essere inserito.

Valore restituito

Un riferimento al valore di dati dell'elemento inserito.

Note

Se il valore della chiave dell'argomento non viene trovato, viene inviato al valore predefinito del tipo di dati.

**operator[]**può essere utilizzato per inserire elementi in hash_map m tramite

m[_Key] = DataValue;

dove DataValue è il valore mapped_type dell'elemento con un valore della chiave _Key.

Quando si utilizza operator[] per inserire elementi, il riferimento restituito non indica se un inserimento viene modificato un elemento preesistenti o sta creando un nuovo oggetto.Le funzioni membro ricerca e inserimento possono essere utilizzate per determinare se un elemento con una chiave specificata è già presente prima di un inserimento.

Esempio

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

Output

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.

Requisiti

intestazione: <hash_map>

Stdext diSpazio dei nomi:

Vedere anche

Riferimenti

hash_map Class

Libreria di modelli standard