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