最近我在閱讀《C++ PRimer》的時候閱讀到了第九章的順序容器,最大的感覺就是難度不大,但知識點非常的凌亂,感覺沒有頭緒。我希望通過這篇博客能夠整理自己的思緒。
書中主要講到了六種容器vector、deque、list、forward_list、array、string。接下來我會分別講述這六種容器
首先是vector,這是一種可變大小數組。支持隨機訪問。在尾部之外的位置插入或刪除元素可能很慢。
vector將元素保存在連續的內存空間中。由于元素是連續存儲的,由元素的下標來計算其地址是非??焖俚?。但在這兩種容器的中間位置添加或刪除元素會非常耗時。
通常,使用vector是最好的選擇。
vector定義在頭文件<vector>中。
string,類似于vector,但專門用于保存字符。隨機訪問塊,在尾部插入/刪除速度快。
定義在頭文件<string>中。
deque是更復雜的數據結構。與string和vector類似,deque支持快速的隨機訪問,從中間位置添加或刪除元素的代價很高。但是在deque兩端添加或刪除元素是很快的。
定義在頭文件<deque>中。
list,雙向鏈表。只支持雙向順序訪問。在list中任何位置進行插入/刪除操作速度都很快。
定義在頭文件<list>中。
forward_list, 單向鏈表。
定義在頭文件<forward_list>中。
array固定大小數組。支持快速隨機訪問。不能添加或刪除元素。
定義在頭文件<array>中。
新聞熱點
疑難解答
圖片精選