1、在map中,由key查詢value時,首先要判斷map中是否包含key。
2、如果不檢查,直接返回map[key],可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的***,會在map中插入乙個key的元素,value取預設值,返回value。也就是說,map[key]不可能返回null。
3、map提供了兩種方式,檢視是否包含key,m.count(key),m.find(key)。
4、m.count(key):由於map不包含重複的key,因此m.count(key)取值為0,或者1,表示是否包含。
5、m.find(key):返回迭代器,判斷是否存在。
6、對於下面的場景,存在key就使用,否則返回null,有下面兩種寫法:
1if(m.count(key)>0)2
5return
null;
1 iter =m.find(key);2if(iter!=m.end())36
return
null;
這裡需要注意:前一種方法很直觀,但是效率差很多。因為前面的方法,需要執行兩次查詢。因此,推薦使用後一種方法。
7、對於stl中的容器,有泛型演算法find(begin,end,target)查詢目標,map還提供了乙個成員方法find(key)
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...