C 順序容器vector deque list

2021-06-08 20:05:54 字數 1003 閱讀 9168

1、容器元素型別

c++中大多數資料型別可以作為容器的元素型別。容器元素型別必須滿足一下兩個條件:支援賦值和複製操作。

所以沒有元素是引用型別的容器,同時io物件和auto_ptr也不能作為容器的元素型別。

2、vector容器的自增長

vector容器中儲存的元素在記憶體中是連續儲存的。假如容器中沒有空間容納新元素,此時由於元素必須連續儲存以便索引訪問,所以不能在記憶體中隨便找個地方儲存這個新的元素,於是vector必須重新分配空間,用於存放原來的元素和新新增的元素:存放在舊容器中的元素被複製到新的容器中,接著插入新的元素,最後撤銷舊的儲存空間。為了使vector容器實現快速的記憶體分配,其實際分配的容量要比當前所需的空間多一些,vector容器預留這些空間,用於存放新的元素。

list容器中新增元素時,只需要建立乙個新的元素,然後將該元素連線到已經存在的鍊錶中,不需要重新分配儲存空間,也不用複製任何已存在的元素。

3、vector、deque、list三種容器的特點

vector:支援快速隨機訪問、可高效的在vector容器尾部新增刪除資料

deque:支援快速隨機訪問、可高效的在deque容器頭部和尾部新增刪除資料

list:支援順序訪問,但是在任何位置插入刪除元素都很快

4、vector容器基本操作

注意(不使用erase和clear時)vector容器的刪除。

#include "stdafx.h"

#include #include #include using namespace std;

int main(int argc, char* argv)

cout

for (iter=v1.begin();iter!=v1.end();)

//再訪問vector中的元素,就得不到結果了

for (iter=v1.begin();iter!=v1.end();)

return 0;

}

C 順序容器

一 順序容器型別 順序容器 vector list deque 介面卡 stack queue priority queue 使用這些容器都必須使用相應的標頭檔案 二 容器元素初始化 cc 建立乙個名為c的空容器 cc c2 建立容器c2的副本 cc b,e 建立c,其元素是迭代器b和e的範圍內的副...

C 順序容器

1 概述 乙個容器就是一些特定型別物件的集合。順序容器型別 描述vector 可變大小陣列,支援快速訪問,在尾部之外的地方插入或刪除時可能很慢 deque 雙端佇列。支援快速訪問,在頭尾插入刪除會很快。list 雙向列表。只支援雙向順序訪問。插入刪除很快 forward list 單向列表。只支援單...

C 順序容器

一 各個順序容器效能差異主要體現在一下兩個方面 1.在容器中任意位置新增和刪除元素的代價 2.隨機訪問容器中元素的代價 vector list deque forward list array string vector是可變大小陣列,支援快速隨機訪問,在尾部插入和刪除元素較為方便 list是雙向鍊...