Go语言map是怎么比较key是否存在的

2025-05-11 02:56:02
推荐回答(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()); }