STL各容器使用場景

2021-09-12 14:13:25 字數 770 閱讀 7347

原文:

stl中常見容器,主要包括如下幾種: 

vector, list, deque,set,multiset, map, multimap。選用合適的容器,對編寫高效的程式,簡潔的**有重要意義; 

最近就專案中就涉及到乙個容器選擇的問題,設計乙個資料結構時,開始使用了乙個錯誤的容器,容器設計非常複雜,使用起來也特別不方便,**冗餘而且昂長。後來重新設計資料結構,使用其他的容器,將將近150行的**,縮短到15行,高效而且易用。因此覺得有必要整理一下容器的使用了。 

首先乙個**整理了各個容器的一些特性,具體應用時可以根據特性進行篩選。 

具體選擇時機: 

一、vector:簡單,允許隨機儲存,資料的訪問十分靈活,在預設情況下應該使用。 

二、deque:經常在頭部和尾部安插和移除元素,並且儲存的容量也比vector大得多。 

三、list:如果經常在容器的中段執行安插,移除和移動元素。但是不支援隨機儲存。 

四、set和multiset:經常以某個準則尋找元素,可以使用「以這個準則為排序準則」的set和multiset,在大量的資料情況下,對數複雜度比線性複雜度的效果要好的多。 

五、map和multimap:使用(key、value)的pair,使用字典,使用關聯式陣列 e.g「map[key] = value」。 

六、list容器中盡量不要使用刪除操作,比插入操作多消耗近百倍

原文:

STL 容器應用場景

stl中常見容器,主要包括如下幾種 vector,list,deque,set,multiset,map,multimap。選用合適的容器,對編寫高效的程式,簡潔的 有重要意義 最近就專案中就涉及到乙個容器選擇的問題,設計乙個資料結構時,開始使用了乙個錯誤的容器,容器設計非常複雜,使用起來也特別不方...

STL的容器分類及使用場景

第一種 順序容器 1 vector 可變陣列。支援快速隨機訪問。在尾部之外的位置插入或刪除元素可能很慢 vector的另乙個常見的問題就是clear操作。clear函式只是把vector的size清為零,但vector中的元素在記憶體中並沒有消除,所以在使用vector的過程中會發現記憶體消耗會越來...

STL容器使用DEMO vector

code author lin yiqian created 2009 08 24 describe stl vector 使用demo include include using namespace std typedef vector int vec 列印vector void printvec...