Partager via


map::operator[]

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

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

Paramètres

Paramètre

Description

_Key

La valeur de clé de l'élément qui sera inséré.

Valeur de retour

Référence à la valeur de l'élément inséré.

Notes

Si la valeur de clé argument est introuvable, elle 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 une carte m à m[_Key] = DataValue; où DataValue est la valeur d'mapped_type de l'élément avec une clé d'_Key.

Lorsque vous utilisez operator[] pour insérer des éléments, la référence retournée n'indique pas si une insertion modifie un élément existant ou créer un nouveau. Les fonctions membres find et insertion peuvent être utilisées pour déterminer si un élément avec la clé spécifiée est déjà présent avant l'insertion.

Exemple

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

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

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

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

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

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

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

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

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

// insert by moving key
    map<string, int> c2;
    string str("abc");
    cout << "c2[move(str)] == " << c2[move(str)] << endl;
    cout << "c2["abc"] == " << c2["abc"] << endl;

    return (0); 
}
  

Configuration requise

En-tête : <mappage>

Espace de noms : std

Voir aussi

Référence

map, classe

Bibliothèque STL (Standard Template Library)