Ich habe versucht, mit dem Operator [] auf das Element in einer const C ++ - Zuordnung zuzugreifen, aber diese Methode ist fehlgeschlagen. Ich habe auch versucht, "at ()" zu verwenden, um dasselbe zu tun. Diesmal hat es funktioniert. Ich konnte jedoch keine Referenz zur Verwendung von "at ()" für den Zugriff auf Elemente in einer const C ++ - Zuordnung finden. Ist "at ()" eine neu hinzugefügte Funktion in der C ++ - Map? Wo finde ich mehr Infos dazu? Vielen Dank!
Ein Beispiel könnte das folgende sein:
#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
}
Bei Verwendung von "B [3]" wurden beim Kompilieren die folgenden Fehler zurückgegeben:
t01.cpp: 14: Fehler: Übergabe von 'const std :: map, std :: allocator >>' als 'dieses' Argument von '_Tp & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator [] ( const _Key &) [mit _Key = int, _Tp = char, _Compare = std :: less, _Alloc = std :: allocator>] 'verwirft Qualifizierer
Der verwendete Compiler ist g ++ 4.2.1