1. 程式人生 > >map的[]操作符的注意事項

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

        在一個類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