STL(標準模板庫) 各種容器的使用時機

在這裏插入圖片描述

vector的使用場景:

比如軟件歷史操作記錄的存儲,我們經常要查看歷史記錄,比 如上一次的記錄,上上次的記錄,但卻不會去刪除記錄,因爲記錄是事實的描 述。

deque的使用場景:

比如排隊購票系統,對排隊者的存儲可以採用deque, 支持頭端的快速移除,尾端的快速添加。如果採用vector,則頭端移除時,會移動 大量的數據,速度慢。

vector與deque的比較:

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

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

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

list的使用場景:

比如公交車乘客的存儲,隨時可能有乘客下車,支持頻繁的不確實位置元素的移除 插入。

set的使用場景:

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

map的使用場景:

比如按ID號存儲十萬個用戶,想要 快速要通過ID查找對應的用戶。二叉樹的查找效率,這時就體現出來了。如果是 vector容器,最壞的情況下可能要遍歷完整個容器才能找到該用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章