Я попытался использовать оператор [] для доступа к элементу на карте const C ++, но этот метод не удался. Я также пытался использовать "at ()", чтобы сделать то же самое. На этот раз это сработало. Однако я не смог найти никаких ссылок на использование "at ()" для доступа к элементу в константной карте C ++. Является ли "at ()" новой функцией в карте C ++? Где я могу найти дополнительную информацию об этом? Большое спасибо!
Примером может быть следующее:
#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
}
Для использования «B [3]» он вернул следующие ошибки во время компиляции:
t01.cpp: 14: ошибка: передача 'const std :: map, std :: allocator>>' в качестве аргумента 'this' в '_Tp & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator [] ( const _Key &) [with _Key = int, _Tp = char, _Compare = std :: less, _Alloc = std :: allocator>] 'отбрасывает квалификаторы
Используемый компилятор - g ++ 4.2.1