我试图使用operator []访问const C map中的元素,但是这个方法失败了 . 我也尝试用“at()”来做同样的事情 . 这次工作 . 但是,我找不到任何关于使用“at()”来访问const C map中的元素的引用 . “at()”是C Map 中新添加的功能吗?我在哪里可以找到更多关于此的信息?非常感谢你!
一个例子可能如下:
#include
#include
using namespace std;
int main()
{
map A;
A[1] = 'b';
A[3] = 'c';
const map 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> :: operator []的'this'参数(const _Key&)[with _Key = int,_Tp = char,_Compare = std :: less,_Alloc = std :: allocator>]'丢弃限定符
使用的编译器是g 4.2.1