C++ deque容器的基本操作
#include <iostream>
#include <deque>
using namespace std;
void printDeq(deque<int>& d)
{
for (int i = 0; i < d.size(); i++)
{
cout << d[i] << " ";
}
cout << endl;
}
int main()
{
deque<int> d1;
cout << "length: " << d1.size() << endl;
d1.push_back(1);
d1.push_back(3);
d1.push_back(7);
d1.push_front(-1);
d1.push_front(-3);
d1.push_front(-7);
cout << "d1头部元素: " << d1.front() << endl;
d1.front() = 10;
d1.back() = 20;
while (d1.size() > 0)
{
cout << "d1尾部元素: " << d1.back() << endl;
d1.pop_back();
}
int iArray[] = { 0,1,2,3,4 };
deque<int> deqIntA(iArray, iArray + 5);
deque<int> deqIntB1(deqIntA.begin(), deqIntA.end());
deque<int> deqIntB2(deqIntA.begin(), deqIntA.begin() + 3);
deque<int> deqIntC(3, 9);
deque<int> deqIntD(deqIntA);
deque<int> d2(10);
for (int i = 0; i < d2.size(); i++)
{
d2[i] = i + 1;
cout << d2[i] << " ";
}
cout << endl;
printDeq(d2);
for (deque<int>::iterator it = d2.begin(); it != d2.end(); it++)
{
cout << *it << " ";
}
cout << endl;
for (deque<int>::reverse_iterator rit = d2.rbegin(); rit != d2.rend(); rit++)
{
cout << *rit << " ";
}
cout << endl;
d2.erase(d2.begin(), d2.begin() + 3);
printDeq(d2);
d2.erase(d2.begin() + 1);
printDeq(d2);
for (deque<int>::iterator it = d2.begin(); it != d2.end();)
{
if (*it == 9)
{
it = d2.erase(it);
}
else
{
it++;
}
}
printDeq(d2);
d2.insert(d2.begin(), 1);
printDeq(d2);
d2.insert(d2.begin() + 2, 4, 8);
printDeq(d2);
d2.insert(d2.end(), deqIntA.begin(), deqIntA.end());
printDeq(d2);
deque<int>::iterator it = find(d2.begin(), d2.end(), 8);
int dist = 0;
while (it != d2.end())
{
if (it != d2.end())
{
dist = distance(d2.begin(), it);
cout << "8的数组下标是: " << dist << endl;
it++;
it = find(d2.begin() + dist + 1, d2.end(), 8);
}
else
{
cout << "没有找到值为8的元素" << endl;
}
}
return 0;
}