STL系列之一 deque双向队列
生活随笔
收集整理的這篇文章主要介紹了
STL系列之一 deque双向队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:http://blog.csdn.net/morewindows/article/details/6946811
deque雙向隊列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在接口上和vector非常相似,下面列出deque的常用成員函數:
deque的實現比較復雜,內部會維護一個map(注意!不是STL中的map容器)即一小塊連續的空間,該空間中每個元素都是指針,指向另一段(較大的)區域,這個區域稱為緩沖區,緩沖區用來保存deque中的數據。因此deque在隨機訪問和遍歷數據會比vector慢。具體的deque實現可以參考《STL源碼剖析》,當然此書中使用的SGI STL與VS2008所使用的PJ STL的實現方法還是有區別的。下面給出了deque的結構圖:
?
由于篇幅問題,deque的實現細節就不再深入了,下面給出deque的使用范例:
[cpp]view plaincopy運行結果如下:
另外要注意一點。對于deque和vector來說,盡量少用erase(pos)和erase(beg,end)。因為這在中間刪除數據后會導致后面的數據向前移動,從而使效率低下。
? 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的STL系列之一 deque双向队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ STL 一般总结
- 下一篇: 聊一聊ws2_32.dll和wsock3