vector 和 list 的区别,应用
生活随笔
收集整理的這篇文章主要介紹了
vector 和 list 的区别,应用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
vector 和 list 的區(qū)別,應(yīng)用
- 1)Vector
- 2、List
- 3、應(yīng)用
1)Vector
連續(xù)存儲的容器,動(dòng)態(tài)數(shù)組,在堆上分配空間
底層實(shí)現(xiàn):數(shù)組
兩倍容量增長:
vector 增加(插入)新元素時(shí),如果未超過當(dāng)時(shí)的容量,則還有剩余空間,那么直接添加
到最后(插入指定位置),然后調(diào)整迭代器。
如果沒有剩余空間了,則會重新配置原有元素個(gè)數(shù)的兩倍空間,然后將原空間元素通過復(fù)
制的方式初始化新空間,再向新空間增加元素,最后析構(gòu)并釋放原空間,之前的迭代器會失效。
性能
訪問: O(1)
插入:在最后插入(空間夠):很快
在最后插入(空間不夠):需要內(nèi)存申請和釋放,以及對之前數(shù)據(jù)進(jìn)行拷貝。
在中間插入(空間夠):內(nèi)存拷貝
在中間插入(空間不夠):需要內(nèi)存申請和釋放,以及對之前數(shù)據(jù)進(jìn)行拷貝。
刪除:在最后刪除:很快
在中間刪除:內(nèi)存拷貝
適用場景:經(jīng)常隨機(jī)訪問,且不經(jīng)常對非尾節(jié)點(diǎn)進(jìn)行插入刪除。
總結(jié)
以上是生活随笔為你收集整理的vector 和 list 的区别,应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安信用卡逾期利息怎么算
- 下一篇: map 和set 有什么区别,分别又是怎