C++ Primer之順序容器(一):常用順序容器概述
阿新 • • 發佈:2018-12-30
最近我在閱讀《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>中。