Set和Map的小知識

2021-09-10 19:12:48 字數 634 閱讀 6521

hashset, hashmap查詢快;

treeset, treemap儲存順序為公升序;

linkedhashset, linkedhashmap 儲存順序為插入的順序;

hashset的部分原始碼

//構造器初始化這個map

private transient hashmapmap;

//set中組合了乙個map的引用,迭代器底層是使用了map的key集合

public iteratoriterator()

//底層使用map的put方法,value始終是乙個同乙個object引用,不太懂為什麼要這樣設計

private static final object present = new object();

public boolean add(e e)

//得到集合大小,實際上是底層使用的map的大小

public int size()

//剩下的方法基本都是使用map的方法

public boolean contains(object o)

public boolean isempty()

public boolean remove(object o)

STL 中map 和 set 的知識點總結

stl中的容器有順序容器 vector,list,deque 關聯容器 map,set 還有一些其他容器。根據不同的場合選擇不同的容器,會有意想不到的收穫。set是單詞set 集合 的意思 map和set內部的元素不可以重複,這一點不同於multimap和multiset。map 和 set使用相同...

Map和Set的常用方法

map.entry即 map 中定義的 k 型別的 key 和 v 型別的 value 的對映關係的類。k getkey 返回 entry 中的 key v getvalue 返回 entry 中的 value map 的常見方法 v get object key 返回 key 對應的 value ...

map和set的使用和原理

我們學習過順序容器如vecor,list等,它們中的元素是按照在容器中的位置來順序儲存和訪問的。而接下來要學習的關聯容器則有根本的不同,它們中的元素是按關鍵字來儲存和訪問的。在 c primer 中列舉了標準庫中的8個關聯容器,如下 關聯容器支援高效的關鍵字查詢和訪問,我們在這裡介紹兩個主要的關聯容...