1. 程式人生 > >C++ Primer之順序容器(一):常用順序容器概述

C++ Primer之順序容器(一):常用順序容器概述

最近我在閱讀《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>中。