STL 容器應用場景

2021-08-09 17:32:44 字數 879 閱讀 3713

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

vectorlistdequesetmultisetmapmultimap。選用合適的容器,對編寫高效的程式,簡潔的**有重要意義;

最近就專案中就涉及到乙個容器選擇的問題,設計乙個資料結構時,開始使用了乙個錯誤的容器,容器設計非常複雜,使用起來也特別不方便,**冗餘而且昂長。後來重新設計資料結構,使用其他的容器,將將近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的過程中會發現記憶體消耗會越來...

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...