vector和list的使用

2021-08-08 14:39:43 字數 546 閱讀 7475

stl是standard template library的簡稱,中文名是標準模板庫。從根本上說,stl是一些容器和演算法的集合。stl可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、演算法(algorithms)、仿函式(functors)六個部分。指標被封裝成迭代器,這裡vector,list就是所謂的容器。 

我們常常在實現鍊錶,棧,佇列或者陣列時,都會寫著一些重複或者相似的**,還要考慮各種可能出現的問題。而stl的引入,大大提高了**的復用性。我們在實現這些**時,只要引入標頭檔案就可以靈活的應用了。

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

list中的物件是離散儲存的,隨機訪問某個元素需要遍歷list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改變元素的指標。

vector和list的使用

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

vector和list的使用

vector和list的區別 1.在儲存中 vector是連續儲存的 list中的物件不一定是連續儲存的。2.list如果要隨機訪問某個元素需要遍歷list,沒有效率。vector過載了 可以直接訪問。3.在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改變元素的指標,但是vector要...

list和vector的區別

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