C++ 之獲取map元素[轉]


鏈接:https://www.cnblogs.com/jianfeifeng/p/11089799.html

  對於map對象, count成員返回值只能是0或者1,map容器只允許一個鍵對應一個實例。所以count可有效地表明一個鍵是否存在。count返回出現的次數。

  find返回指向元素的迭代器, 如果元素不存在, 則返回end 迭代器。

 

  直接使用下標操作存在一個危險的副作用:如果該鍵不在map容器中,那么下標操作會插入一個具有該鍵的新元素。但是大多數情況下,使用者並不想插入一個容器本不存在的key。

  c++中提供了兩種不修改map對象的查詢操作:

一、m.count(k) ==========> 返回m中k的出現次數

舉個例子:

int occurs = 0;

if(word_count.count("foobar")){

  occurs = word_count["foobar"];

}

// 執行count后再使用下標操作符號, 實際上是對元素作了兩次查找。如果希望當元素存在時就使用它, 則應該用find操作。

二、m.find(k) ==========> 如果m容器中存在按k索引的元素, 則返回指向該元素的迭代器。如果不存在, 則返回超出末端迭代器。

舉個例子:

int occurs = 0;

map<string, int>::iterator it = word_count.find("foobar");

if(it != word_count.end()){

  occurs = it->second;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM