學(xué)習(xí)啦 > 生活課堂 > 生活小常識 > vector和list的區(qū)別是什么

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”的人還看了:

1.Linux find命令常見用法

2.2016java面試題

3.2016java面試題大全帶答案

4.2016java web面試題(2)

1775769