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

2025-02-23 00:06:05
推荐回答(1个)
回答1:

首先,不推荐使用[]来判断key是否存在,因为使用操作符[]会向map容器里插入一个元素。 map的operator[]重载大致是这样一个内容: data_type& operator[]( const key_type& k ){value_type v(k, data_type()); iterator it = insert(v).first; } 大致是这样,如果没有找到的话就插入一个,然后返回它的second。 正确的判断方法是使用map的find函数,由于map是一个红黑树,find的时间复杂度是logn,可以接受。 bool i***ist(constString& keyName) { return( mRegistryMap.find(keyName)!= mRegistryMap.end()); }