【一】 stl容器
(1) list (鍊錶 ), 記憶體不連續,任何位置高校插入刪除
(2) vector (陣列),記憶體連續,只有在尾部插入時,不用移動元素,隨機訪問
(3) deque(雙端佇列)兩端插入刪除效率高,但是中間的操作代價較大,隨機訪問
【注】若要經常在中間插入刪除 ,list ;
若經常隨機訪問, vector和deque ,支援下表操作。
關聯容器
(4) map鍵型別嚴格弱排序
建構函式 :
mapm;【mapm(m2);
mapm(m2.beg, m2.end);
注】map[key] = value; 若下標所示的鍵不存在,則自動建立,精簡程式!
insert(pair)
find(key) 返回迭代器
count(key) 存在返回1,否則為0
(5) set
不重複元素的集合,使用平衡樹實現,查詢效率 log(n)
操作類似於map
另外,multimap , multiset.
【二】 boost
stl容器中沒有雜湊容器!
unordered_set 用雜湊函式實現,複雜度為常數,具體與雜湊函式有關
unordered_map
C 容器類的使用及舉例
vector類為內建陣列提供了一種替代表示,與string類一樣 vector 類是隨標準 c 引入的標準庫的一部分 為了使用vector 我們必須包含相關的標頭檔案 include 使用vector有兩種不同的形式,即所謂的陣列習慣和 stl習慣。1.定義乙個已知長度的 vector vector...
C 各容器的語法及特點
int main array不可變長,array在記憶體中是連續的 陣列arraymyarray 定義了乙個int型,陣列元素數為3的陣列 auto mbegin myarray.begin 從陣列的首位址開始自動 array iterator mend myarray.end 迭代 for mbe...
C 中的容器及相關操作
關聯容器將值與鍵關聯在一起,並使用鍵來查詢值。stl提供了4種關聯容器 set multiset map multimap。set中,可反轉,可排序,鍵與值型別相同,鍵是唯一的,意味著集合中不會有多個相同的鍵。multiset中,可能有多個值的鍵相同。map中,鍵與值型別不同,鍵是唯一的,每個鍵只對...