1. 程式人生 > >vector和list

vector和list

時間復雜度 原理 實現 cnblogs 數據 空間 隨機 tao 地方

vector

  vector與數組類似,擁有一段連續的內存空間,並且起始地址不變。便於隨機訪問,時間復雜度為O(1),但因為內存空間是連續的,所以在進入插入和刪除操作時,會造成內存塊的拷貝,時間復雜度為O(n)。

  此外,當數組內存空間不足,會采取擴容,通過重新申請一塊更大的內存空間進行內存拷貝。

List

  list底層是由雙向鏈表實現的,因此內存空間不是連續的。根據鏈表的實現原理,List查詢效率較低,時間復雜度為O(n),但插入和刪除效率較高。只需要在插入的地方更改指針的指向即可,不用移動數據。

叠代器支持不同

異:vector中,iterator支持 ”+“、”+=“,”<"等操作。而list中則不支持。

同:vector<int>::iterator和list<int>::iterator都重載了 “++ ”操作。

轉:https://www.cnblogs.com/ktao/p/8577700.html

vector和list