STL容器使用的時機

2022-07-22 08:39:13 字數 780 閱讀 6175

vector的使用場景:比如軟體歷史操作記錄的儲存,我們經常要檢視歷史記錄,比如上一次的記錄,上上次的記錄,但卻不會去刪除記錄,因為記錄是事實的描述。

deque的使用場景:比如排隊購票系統,對排隊者的儲存可以採用deque,支援頭端的快速移除,尾端的快速新增。如果採用vector,則頭端移除時,會移動大量的資料,速度慢。

vector與deque的比較:

一:vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的開始位置 卻是不固定的。

二:如果有大量釋放操作的話,vector花的時間更少,這跟二者的內部實現有關。

三:deque支援頭部的快速插入與快速移除,這是deque的優點。

list的使用場景:比如公交車乘客的儲存,隨時可能有乘客下車,支援頻繁的不確實位置元素的移除插入

set的使用場景:比如對手機遊戲的個人得分記錄的儲存,儲存要求從高分到低分的順序排列。 

map的使用場景:比如按id號儲存十萬個使用者,想要快速要通過id查詢對應的使用者。二叉樹的查詢效率,這時就體現出來了。如果是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...

STL容器使用DEMO multimap

code author lin yiqian created 2009 08 24 describe stl multimap 使用demo include include include using namespace std typedef multimap str mmap 列印multima...

STL容器使用DEMO multiset

code author lin yiqian created 2009 08 24 describe stl multiset 使用demo include include using namespace std typedef multiset int mset 列印set void prints...