map的迭代器

2022-06-21 15:30:10 字數 736 閱讀 7138

iterator> iter=map.entryset().iterator();

map的迭代器,用作遍歷map中的每乙個鍵值對

iterator是迭代器,map之前應該定義過,姑且認為是hashmap。

>表示map中的鍵值對都是string型別的。

map.entryset()是把hashmap型別的資料轉換成集合型別。

map.entryset().iterator()是去獲得這個集合的迭代器,儲存在iter裡面。

迭代器這麼用:

while(iter.hasnext())

iteratoriter;//宣告乙個迭代器,泛型裡面是string型別,表示迭代元素是string型別的。

iterator> iter;//而你提供的要稍微複雜一點,迭代元素本身就是乙個entry鍵值對,

entry表示其key值是string,value值也是string。

hashset set=map.entryset();//將map型別資料轉換成集合set型別的。

iter=set.iterator();//獲得集合的迭代器。迭代器只針對集合型別的資料,

因此map型別的必須先轉換成集合型別才能使用迭代器去獲取元素。

keyset獲得的只是key值的集合,

values獲得的是value集合,

entryset獲得的是鍵值對的集合。

map迭代器的基本用法

stl官方描述太過複雜,總結有以下幾種用法 begin 返回指向map頭部的迭代器 clear 刪除所有元素 count 返回指定元素出現的次數 empty 如果map為空則返回true end 返回指向map末尾的迭代器 equal range 返回特殊條目的迭代器對 erase 刪除乙個元素 f...

Map介面和迭代器

使用iterator迭代器的缺點 1.listiterator有add 方法,可以向list中新增物件,而iterator不能 2.listiterator和iterator都有hasnext 方法,可以實現順序向後遍歷,但是 listiteator裡面有hasprevious 和previous ...

C 中map的迭代器操作

c 中map的迭代器操作 可以直接插入pair型別,也可以進行直接賦值 pair型別的左邊是第一關鍵字,右邊是第二關鍵字,顯然,map是由紅黑樹封裝起來的,所以支援動態維護平衡樹,因此,遍歷map的時候第一關鍵字的資料是有序的 include include include include incl...