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