/*
* deque內部會維護一個map(注意!不是STL中的map容器).
* 即一小塊連續的空間,該空間中每個元素都是指針,指向另一段(較大的)區域.
* 這個區域稱爲緩衝區,緩衝區用來保存 deque 中的數據.
* 因此deque在隨機訪問和遍歷數據會比vector慢.
* deque頭尾兩端分別做插入和刪除操作都是常數時間.
*
*/
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main() {
deque<int> dq1;
for(int i = 0; i < 5; i++)
dq1.push_back(i + 1);
for(int i = 0; i < dq1.size(); i++)
cout << dq1[i] << " ";
cout << endl;
dq1.push_back(6);
dq1.push_front(0);
for(int i = 0; i < dq1.size(); i++)
cout << dq1[i] << " ";
cout << endl;
dq1.pop_back();
dq1.pop_front();
for(int i = 0; i < dq1.size(); i++)
cout << dq1[i] << " ";
cout << endl;
dq1.push_back(61);
dq1.push_back(63);
dq1.push_back(65);
for(auto ptr = dq1.begin(); ptr != dq1.end(); ptr++)
cout << *ptr << " ";
cout << endl;
if(!dq1.empty()) {
auto pos = find(dq1.begin(), dq1.end(), 63);
if(pos != dq1.end())
cout << *pos << endl;
}
return 0;
}
// 對於deque和vector來說,儘量少用erase(pos)和erase(beg,end).
// 因爲這在中間刪除數據後會導致後面的數據向前移動,從而使效率低下.
deque 整理筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.