今天遍歷hashmap讀取資料時,發現我的map物件已經把配置表的所有資料都讀取出來了,但是去遍歷的時候,發現只遍歷了一部分資料。
map_of_cfg_data::iterator iter_begin = map_of_cfg_data_.
begin()
;map_of_cfg_data::iterator iter_end = map_of_cfg_data_.
end();
//這是需要獲取的乙個資料的結構體
timing_data timing_data;
//這裡開始去遍歷
for(iter_begin; iter_begin != iter_end;
++iter_begin)
}
在讀取配置表的時候,map_of_cfg_data_這個hash_map物件存入的鍵值順序分別是int型別的6,7,8,9,10…1,4,5,16,17,18
而在for迴圈裡面遍歷時,第乙個資料卻是5這個鍵值的,然後是18,當我想要判斷7這個鍵所對應的資料內容時,發現一直遍歷不到這個資料,後來才發現到6的時候就已經進入判斷裡面,然後break出去了。
總結:hashmap會先用hash函式處理鍵值,讓其能夠均勻分布到map中,這就會導致map中key的順序並非插入時候的順序。
HashMap遍歷效率問題
對於hashmap中的key和value的遍歷有兩種方法 1.通過hashmap.keyset 方法返回key的集合,通過遍歷該集合的key得到相應的value值。map map new hashmap iterator iter map.keyset iterator while iter.has...
順序表查詢刪除遍歷
輸入格式 第一行輸入乙個正整數 m 1 m 100 代表一共有 m 個操作。接下來輸入 m 行,每行首先輸入乙個整數 t,分別代表以下操作 t 1,代表插入操作,輸入兩個整數 a 和 b 0 a,b 100 表示在 a 的位置上擦入元素 b,如果插入成功輸出success,否則輸出failed。t ...
HashMap集合遍歷
map的遍歷 1,迭代器 一鍵導包 ctrl shift o 先遍歷出key 再通過key找到value set keyset map.keyset 因為map中的key是唯一的 所以可以獲取到key的set集合 iterator it keyset.iterator 獲取迭代器 while it....