vector和list的區(qū)別是什么
時間:
志峰887由 分享
vector和list的區(qū)別是什么
對于學(xué)c語言的同學(xué)來說,vector和list這兩個東西經(jīng)常會搞錯。下面是學(xué)習(xí)啦小編為大家準(zhǔn)備的vector和list的區(qū)別是什么,希望大家喜歡!
vector和list的區(qū)別一:
vector是順序表,表示的是一塊連續(xù)的內(nèi)存,元素被順序存儲;list是雙向連接表,在內(nèi)存中不一定連續(xù)。
vector和list的區(qū)別二:
當(dāng)數(shù)值內(nèi)存不夠時,vector會重新申請一塊足夠大的連續(xù)內(nèi)存,把原來的數(shù)據(jù)拷貝到新的內(nèi)存里面;list因?yàn)椴挥每紤]內(nèi)存的連續(xù),因此新增開銷比vector小。
vector和list的區(qū)別三:
list只能通過指針訪問元素,隨機(jī)訪問元素的效率特別低,在需要頻繁隨機(jī)存取元素時,使用vector更加合適。
vector和list的區(qū)別四:
當(dāng)向vector插入或者刪除一個元素時,需要復(fù)制移動待插入元素右邊的所有元素;因此在有頻繁插入刪除操作時,使用list更加合適。
vector和list的區(qū)別五:
vector在每次擴(kuò)張容量的時候,將容量擴(kuò)展2倍,這樣對于小對象來說,效率是很高的。
list中的對象是離散存儲的,隨機(jī)訪問某個元素需要遍歷list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改變元素的指針。
看了“333”的人還看了: