Ho provato a utilizzare l'operatore [] per accedere all'elemento in una mappa C ++ const, ma questo metodo non è riuscito. Ho anche provato a usare "at ()" per fare la stessa cosa. Questa volta ha funzionato. Tuttavia, non sono riuscito a trovare alcun riferimento sull'utilizzo di "at ()" per accedere all'elemento in una mappa C ++ const. "At ()" è una funzione appena aggiunta nella mappa C ++? Dove posso trovare maggiori informazioni su questo? Grazie mille!
Un esempio potrebbe essere il seguente:
#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
}
Per l'utilizzo di "B [3]", ha restituito i seguenti errori durante la compilazione:
t01.cpp: 14: errore: passaggio di 'const std :: map, std :: allocator>>' come 'questo' argomento di '_Tp & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator [] ( const _Key &) [with _Key = int, _Tp = char, _Compare = std :: less, _Alloc = std :: allocator>] 'scarta qualificatori
Il compilatore utilizzato è g ++ 4.2.1