如何判斷map容器的key是否存在

首先,不推薦使用[]來判斷key是否存在,因爲使用操作符[]會向map容器裏插入一個元素。


     map的operator[]重載大致是這樣一個內容: 

        data_type&   operator[](   const   key_type&   k   ) 
        { 
        value_type   v(k,   data_type()); 
        iterator   it   =   insert(v).first; 
        return   it-> second; 
        }

     大致是這樣,如果沒有找到的話就插入一個,然後返回它的second。

 

    正確的判斷方法是使用map的find函數,由於map是一個紅黑樹,find的時間複雜度是logn,可以接受。

    bool i***ist(const String& keyName)
    {
        return ( mRegistryMap.find(keyName) != mRegistryMap.end() );
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章