c 中vector與list的區別

2021-06-12 09:33:36 字數 371 閱讀 1833

c++標準庫中,容器vector和list都可以用來存放一組型別相同的資料。而且二者不同於陣列的一點是,支援動態增長。但它們還是有有幾點不同

(1)  vector是順序表,表示的是一塊連續的記憶體,元素被順序儲存;list是雙向連線表,在記憶體中不一定連續。

(2)當數值記憶體不夠時,vector會重新申請一塊足夠大的連續記憶體,把原來的資料拷貝到新的記憶體裡面;list因為不用考慮記憶體的連續,因此新增開銷比vector小。

(3)list只能通過指標訪問元素,隨機訪問元素的效率特別低,在需要頻繁隨機訪問元素時,使用vector更加合適。

(4)當向vector插入或者刪除乙個元素時,需要複製移動待插入元素右邊的所有元素;因此在有頻繁插入刪除操作時,使用list更加合適。

C 容器中列表list和向量vector區別

關於容器 容器是可以用於存放各種型別的資料的資料結構 如 vectorv1 c 標準模板庫 stl 提供三類容器 1 順序容器,如vector,list,deque 雙端佇列 等 2 關聯容器,如set 集合 multiset 多重集合 map 對映 multimap 多重對映 等 3 容器介面卡,...

C 中vector和list的區別

1.vector資料結構 vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。因此能高效的進行隨機訪問,時間複雜度為o 1 但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o n 另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶體空間並進行記...

C 中vector和list排序

容器 泛型演算法 和類是不是就是c 相對於c 的那部分呢?暫時先這麼認為吧。如果這篇部落格有幸被別人看到,請幫忙指出。c 菜鳥 留。vector的迭代器是隨機訪問迭代器,支援泛型演算法的sort及其演算法。vector排序 include include include include includ...