std::deque的使用
生活随笔
收集整理的這篇文章主要介紹了
std::deque的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄[-]
1、deque、list、vector區別
??deque與vector在存儲上的不同:deque為非連續存儲,當前段存儲滿后,將新申請的內存掛接在原段的后面,之前的數據無需操作。vector則當前段存儲滿后,申請更大的內存,將原來的數據拷貝到新內存中。
??vector:隨機訪問操作頻率高。
??list:插入刪除頻率高,但只可在頭部尾部進行添加與刪除。
??deque:通過 [ ]?以及 .at(int)支持隨機訪問,可在內部進行插入與刪除。但性能不及list。
2、deque容器
deque容器為一個給定類型的元素進行線性處理,像向量一樣,它能夠快速地隨機訪問任一個元素,并且能夠高效地插入和刪除容器的尾部元素。但它又與vector不同,deque支持高效插入和刪除容器的頭部元素,因此也叫做雙端隊列。deque類常用的函數如下。
# 定義方式std::deque<int> numberOfArray; # 向雙端隊列頭部增加數據numberOfArray.push_front(2); # 向雙端隊列尾部增加數據numberOfArray.push_back(3); # 刪除雙端隊列頭部數據numberOfArray.pop_front(); # 刪除雙端隊列尾部數據numberOfArray.pop_back(); # 清除雙端隊列中的所有數據numberOfArray.clear(); # 為雙端隊列分配內容numberOfArray.assign(2,100);//分配兩個100 # 在指定位置處增加一個數據numberOfArray.insert(numberOfArray.begin(),2); # 等價于numberOfArray.push_front(2); # 在指定位置處增加多個相同的數據numberOfArray.insert(numberOfArray.begin(),6,2);//添加6個2 # 復制兩個指定位置間的數據numberOfArray.insert(numberOfArray.begin(),numberOfArray.begin),end()); # 返回指定位置的元素numberOfArray.at(1); # 返回首元素應用numberOfArray.front(); # 返回尾巴元素應用numberOfArray.back(); # 判斷雙向隊列大家哦兒哦0numberOfArray.empty(); # 返回元素中數據格式numberOfArray.size();3、示例
#include<iostream> #include<deque>int main(int argc, char* argv[]){std::deque<int> numberOfArray;numberOfArray.push_front(2);numberOfArray.push_front(4);numberOfArray.push_front(3);//numberOfArray.pop_back();for(unsigned char i =0;i<numberOfArray.size();++i)std::cout<<numberOfArray.at(i)<<std::endl; }總結
以上是生活随笔為你收集整理的std::deque的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.6 memcached_M
- 下一篇: 垃圾回收算法_垃圾回收算法有哪些