operator []を使用してconst C ++マップの要素にアクセスしようとしましたが、このメソッドは失敗しました。また、 "at()"を使用して同じことを試みました。今回はうまくいきました。ただし、 "at()"を使用してconst 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>>'を '_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です。