Intenté usar el operador [] para acceder al elemento en un mapa constante de C ++, pero este método falló. También intenté usar "at ()" para hacer lo mismo. Funcionó esta vez. Sin embargo, no pude encontrar ninguna referencia sobre el uso de "at ()" para acceder al elemento en un mapa constante de C ++. ¿Es "at ()" una función recién agregada en el mapa C ++? ¿Dónde puedo encontrar más información sobre esto? ¡Muchas gracias!
Un ejemplo podría ser el siguiente:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, char> A;
A[1] = 'b';
A[3] = 'c';
const map<int, char> B = A;
cout << B.at(3) << endl; // it works
cout << B[3] << endl; // it does not work
}
Para usar "B [3]", devolvió los siguientes errores durante la compilación:
t01.cpp: 14: error: pasar 'const std :: map, std :: allocator>>' como 'este' argumento de '_Tp & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator [] ( const _Key &) [con _Key = int, _Tp = char, _Compare = std :: less, _Alloc = std :: allocator>] 'descarta los calificadores
El compilador utilizado es g ++ 4.2.1