deque容器爲雙端數組,與vector類似,但vector僅爲後端 deque可以前端插入數據刪除數據。
void printdeque(deque<int>& d)
{
for (deque<int>::iterator it = d.begin();it != d.end();it++)
{
cout << (*it) <<" ";
}
cout << endl;
}
// 構造函數 // deque類似雙端數組
//默認構造
deque<int> de;
for (int i = 0;i < 10;i++)
de.push_back(i);
printdeque(de);
//區間構造
deque<int>d2(de.begin(), de.end());
printdeque(d2);
//重複構造
deque<int>d3(10, 100);
printdeque(d3);
//拷貝構造
deque<int>d4(de);
printdeque(d4);
//賦值操作//
deque<int>d1;
for (int i = 0;i < 10;i++)
d1.push_back(i);
printdeque(d1);
//等號賦值
deque<int>d2 = d1;
printdeque(d2);
//assign賦值
deque<int>d3;
d3.assign(d1.begin(), d1.begin()+4);
printdeque(d3);
deque<int>d4;
d4.assign(10, 100);
printdeque(d4);
//容量大小操作 //
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i);
printdeque(d1);
if (d1.empty())
cout << "d1爲空" << endl;
else
cout << "d1不爲空" << endl;
cout << "d1的大小爲 :" << d1.size() << endl;
d1.resize(15,1); //多的地方用1來填充
printdeque(d1);
////插入與刪除
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //頭插入
printdeque(d1);
d1.push_back(10); //尾插
printdeque(d1);
d1.pop_back(); //尾刪
printdeque(d1);
d1.pop_front(); //頭刪
printdeque(d1);
///insert插入
d1.insert(d1.end(),100); //尾部插入100
d1.insert(d1.begin()+3, 11);//頭部+3(第四個位置)插入11
printdeque(d1);
deque<int> d2;
d2.push_back(50);
d2.push_back(20);
d2.push_back(30);
d2.push_back(40);
d1.insert(d1.begin(), d2.begin(), d2.end());//在d1的頭部插入整個d2
printdeque(d1);
//刪除元素
deque<int>::iterator it = d1.begin();
it++;
d1.erase(it); //刪除了第二個元素
printdeque(d1);
d1.clear(); //刪除所有元素
printdeque(d1);
//訪問元素//
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //頭插入
printdeque(d1);
cout << d1.at(6) << endl; //訪問下標爲六的元素
cout << d1[5] << endl; //訪問下標爲五的元素
cout << d1.front() << endl; //訪問第一個元素
cout << d1.back() << endl; //訪問最後一個元素
//排序操作//
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //頭插入
printdeque(d1);
sort(d1.begin(), d1.end());
cout << "排序後" << endl;
printdeque(d1);