vector的使用場景:
比如軟件歷史操作記錄的存儲,我們經常要查看歷史記錄,比 如上一次的記錄,上上次的記錄,但卻不會去刪除記錄,因爲記錄是事實的描 述。
deque的使用場景:
比如排隊購票系統,對排隊者的存儲可以採用deque, 支持頭端的快速移除,尾端的快速添加。如果採用vector,則頭端移除時,會移動 大量的數據,速度慢。
vector與deque的比較:
-
一:vector.at()比deque.at() 效率高,比如vector.at(0)是固定的,deque的開始位置 卻是不固定的。
-
二:如 果有大量釋放操作的話,vector花的時間更少,這跟二者的內部實現有關。
-
三:deque支持頭部的快速插入與快速移除,這是deque的優點。
list的使用場景:
比如公交車乘客的存儲,隨時可能有乘客下車,支持頻繁的不確實位置元素的移除 插入。
set的使用場景:
比如對手機遊戲的個人得分記錄的存儲,存儲要求從高 分到低分的順序排列。
map的使用場景:
比如按ID號存儲十萬個用戶,想要 快速要通過ID查找對應的用戶。二叉樹的查找效率,這時就體現出來了。如果是 vector容器,最壞的情況下可能要遍歷完整個容器才能找到該用戶。