map的[]操作符的注意事项

来源:互联网 发布:淘宝黑色半高领薄毛衣 编辑:程序博客网 时间:2024/05/19 14:34

        在一个类Class A中声明一个常函数AnsiString GPV(const AnsiString& sSec,const AnsiString& sK) const;和一个私有变量map<AnsiString,AnsiString> Map;

        当在常函数GPV函数体中有涉及到map的[]操作符时,会出错,因为operator []可能会改变数据成员对象,这与常函数的特性不符,为了达到操作符[]的效果,我们可以用find()完成这个功能,在函数体中加入:

     map<AnsiString,AnsiString>::const_iterator it=Map.find(sSection.LowerCase()+"@"+sKey.LowerCase());     if(it!=Map.end())    {       return it->second;    }    return "";


为了防止以后忘记就分享咯。

另外谢谢以下链接作者的分享:http://blog.chinaunix.net/uid-20999-id-2410226.html
0 0
原创粉丝点击