我有一个关于通过引用传递地图的问题。让我们看看下面这段代码:C++:传递引用和const关键字
void doNotChangeParams(const map<int, int>& aMap){
if (aMap.find(0) != aMap.end()){
cout << "map[0] = " << aMap[0] << endl;
}
}
,我有一个地图MYMAP做出这样的呼吁:doNotChangeParams(MYMAP)
现在,可以看出,我不会修改函数内部的参数aMap。不过,我的g ++编译器抱怨访问aMap [0]丢弃了限定符const。
我把const因为我想告诉读者这个函数我没有修改参数。另外,当我不小心修改地图时,它有助于引发编译错误。
目前,我不得不放弃const,我认为它会使上述含义不清楚读者从方法的签名。我知道一个评论会做,但我想我会问,如果你知道任何“程序化”的方式。
谢谢,伙计们。
的可能重复[?为什么不是STL地图中的\ [\]运营商常量(http://stackoverflow.com/questions/1474894/why-isnt -the-operator-const-for-stl-maps) – 2010-07-23 03:56:04