C 之獲取map元素

2022-04-27 10:51:07 字數 710 閱讀 6279

對於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::iterator it = word_count.find("foobar");

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

occurs = it->second;

獲取Map中元素

1.對物件的集合 collection 和鍵值對集合 map 都支援嗎?答 不支援的,因為map集合裡面沒有迭代器,凡是支援迭代器的集合他們都支援高階for,高階for是迭代器的簡寫形式 map集合裡面為什麼沒有迭代器 介面 collection他裡面有迭代器,collection介面繼承了介面 i...

map刪除元素

1.刪除指定的key map iterator iter m.find 1 m.erase iter 上述例子的map是任意給定的,我們指定刪除mapm中 鍵值為1的資料 測試結果m的size減一 上完整測試 include include using namespace std int main ...

map刪除元素

map刪除指定元素 1.hashmap 類對映不保證順序 某些對映可明確保證其順序 treemap 類 2.在遍歷map過程中,不能用map.put key,newval map.remove key 來修改和刪除元素,會引發 併發修改異常,可以通過迭代器的remove 從迭代器指向的 collec...