Partager via


hash_map::operator

[!REMARQUE]

Cette API est obsolète.l'alternative est unordered_map Class.

Insère un élément dans hash_map avec une valeur de clé spécifiée.

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

Paramètres

Paramètre

Description

_Key

La valeur de clé de l'élément à insérer.

Valeur de retour

Une référence à la valeur de données de l'élément inséré.

Notes

Si la valeur de clé d'argument est introuvable, il est insérée avec la valeur par défaut du type de données.

**operator[]**peut être utilisé pour insérer des éléments dans hash_map m à l'aide de

m[_Key] = DataValue;

où DataValue est la valeur d' mapped_type de l'élément avec une valeur de clé d' _Key.

L'utilisation operator[] pour insérer des éléments, la référence retournée n'indique pas si une implémentation modifie un élément préexistant ou en crée un.Les fonctions membres recherche et insertion peuvent être utilisées pour déterminer si un élément avec une clé spécifiée est déjà installé avant une implémentation.

Exemple

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

Sortie

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.

Configuration requise

en-tête : <hash_map>

Stdext del'espace de noms :

Voir aussi

Référence

hash_map Class

Modèles Standard