有關Vector和List的各自優勢

2021-08-07 10:26:15 字數 383 閱讀 8840

向量(vector):循秩訪問(rank),類似與ram中每給定乙個位置i,都可以在o(1)的時間裡找到它對其進行操作。

列表(list):循位置訪問(position),類似與圖靈機,紙帶無限長,我們可以操控其中乙個單元,某一時刻,我們訪問距離他較遠的位置時,我們只能通過一步一步的迭代來實現。

有序情況下

在需要查詢乙個元素時,我們的vector的效率為o(logn),list的效率為o(n);

在需要新增刪除乙個元素時,我們的vector的效率是o(n),list的效率為o(1);

因此當我們的查詢操作較多時,可以用vector來實現效率更高,當新增刪除操作較多時,我們用list來實現時效率更高。

list和vector的區別

vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能夠非常好的支援隨機訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝。另外,當該陣列後的記憶體空間不夠時,需要重新申請一塊足夠大的記憶體並進行記憶體的拷貝。這些都大大...

vector和list的使用

1.vector為儲存的物件分配一塊連續的位址空間,因此對vector中的元素隨機訪問效率很高。在vecotor中插入或者刪除某個元素,需要將現有元素進行複製,移動。如果vector中儲存的物件很大,或者建構函式複雜,則在對現有元素進行拷貝時開銷較大,因為拷貝物件要呼叫拷貝建構函式。對於簡單的小物件...

vector和list的使用

stl是standard template library的簡稱,中文名是標準模板庫。從根本上說,stl是一些容器和演算法的集合。stl可分為容器 containers 迭代器 iterators 空間配置器 allocator 配接器 adapters 演算法 algorithms 仿函式 fun...