Condividi tramite


map::operator

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

Type& operator[](
   const Key& _Key
);
Type& operator0-(
    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 un mapping m utilizzando m[_Key] = DataValue; in cui 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 esistente oppure 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

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

Requisiti

intestazione: <map>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

map Class

Libreria di modelli standard