vector
連續(xù)存儲結(jié)構(gòu)边器,每個元素在內(nèi)存上是連續(xù)的训枢;支持高效的隨機訪問和在尾端插入/刪除操作,但其他位置的插入/刪除操作效率低下忘巧,可以動態(tài)擴充恒界,但是擴充過程效率不高,所以可以通過函數(shù)控制擴充機制砚嘴。
list
非連續(xù)存儲結(jié)構(gòu)十酣,具有雙鏈表結(jié)構(gòu),每個元素維護一對前向和后向指針际长,因此支持前向/后向遍歷耸采,支持高效的隨機插入/刪除操作,但隨機訪問效率低下工育。
優(yōu)點:
(1) 不使用連續(xù)內(nèi)存完成動態(tài)操作虾宇。
(2) 在內(nèi)部方便的進行插入和刪除操作
(3) 可在兩端進行push、pop
缺點:
(1) 不能進行內(nèi)部的隨機訪問如绸,即不支持[ ]操作符和vector.at()
(2) 相對于verctor占用內(nèi)存多
deque
連續(xù)存儲結(jié)構(gòu)嘱朽,即其每個元素在內(nèi)存上也是連續(xù)的,類似于vector怔接,不同之處在于搪泳,deque提供了兩級數(shù)組結(jié)構(gòu), 第一級完全類似于vector扼脐,代表實際容器岸军;另一級維護容器的首位地址。這樣,deque除了具有vector的所有功能外凛膏,還支持高效的首/尾端插入/刪除操作
deque 雙端隊列 double-end queue
deque是在功能上合并了vector和list
優(yōu)點:
(1) 隨機訪問方便杨名,即支持[ ]操作符和vector.at()
(2) 在內(nèi)部方便的進行插入和刪除操作
(3) 可在兩端進行push、pop
缺點:占用內(nèi)存多