Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wstawia element do mapy określonej wartości klucza.
Type& operator[](
const Key& _Key
);
Type& operator0-(
Key&& _Key
);
Parametry
Parametr |
Opis |
_Key |
Wartość klucza element, który ma być wstawiony. |
Wartość zwracana
Odwołanie do wartości danych wstawionego elementu.
Uwagi
Jeśli argument wartość klucza nie zostanie znaleziony, po wstawieniu oraz wartość domyślnego typu danych.
operator[]może służyć do wstawienia elementów do mapy m za pomocą m[_Key] = DataValue; gdzie DataValue jest wartością mapped_type elementu z wartość klucza _Key.
Podczas korzystania z operator[] do wstawienia elementów, zwracane odwołanie nie wskazuje czy wstawiania jest zmiana istniejącego elementu lub utworzenie nowego.Funkcje składowe znaleźć i wstawić można określić, czy element z określonego klucza jest już obecny przed wstawieniem.
Przykład
// 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);
}
Wymagania
Nagłówek: <map>
Obszar nazw: std