c 標準庫中的順序容器和使用原則

2021-10-12 03:02:14 字數 610 閱讀 5439

《c++ primer》9.1章節

1、vector:大小可變的陣列,可快速隨機訪問元素,在尾部之外的地方刪除、插入較慢,元素儲存在連續的記憶體空間;

2、deque:雙端佇列,可快速隨機訪問元素,在頭尾刪除、插入很快;

4、forward_list:單鏈表,不能快速隨機訪問元素,要訪問元素只能單向順序遍歷,在任意地方插入、刪除都很快(額外記憶體開銷大);

5、array:固定大小的陣列,不能刪除和插入元素;

6、string:沒錯,這也是容器,專用來儲存字元,支援快速隨機訪問,在尾部插入、刪除很快,元素儲存在連續的記憶體空間,在中間插入、刪除元素慢。

1、一般使用vector;

2、如果元素很多且記憶體空間吃緊,則不要用鍊錶(每個元素都有額外開銷);

3、要在中間插入元素應使用鍊錶;

4、只在頭尾插入元素,不會在中間插入元素用佇列;

順序容器的一般形式:容器。t是資料型別,a是分配器。

template>

class vector

;

a預設是std::allocator此分配器預設使用operator new() / operator delete()分配和釋放記憶體。

C 標準庫 順序容器

二 容器的選擇 三 容器的操作 容器就是特定型別物件的集合。順序容器為程式設計師提供了控制元素儲存和訪問順序的能力,這種順序不依賴於元素的值,而是與元素加入容器時的位置相對應。相比於陣列,它可以很隨意的實現元素的新增 刪除等,我們也無需擔心記憶體分配的問題。要使用容器,必須包含相應的標頭檔案 inc...

C 標準庫 順序容器

容器是容納特定型別物件的集合。順序容器將單一型別元素聚集起來,並且根據位置來儲存和訪問這些元素。順序容器中元素排列順序與元素值無關,而是根據元素值新增到容器中的次序決定的。標準庫中有三種順序容器,分別是vector,list與deque。其中vector支援隨機的快速訪問,因為vector中存放資料...

C 標準庫中vector容器的使用

標準stl序列容器 vector string deque和list。標準stl關聯容器 set multiset map和multimap。非標準序列容器slist和rope。slist是乙個單向鍊錶,rope本質上是一 重型 string。非標準的關聯容器hash set hase multis...