#include<deque>
#include<iostream>
#include<algorithm>
using namespace std;
void showDeque(deque<int> iDeque, int showTimes)
{
cout << "This is " << showTimes << " deque's contents is: ";
for (auto x : iDeque)
cout << x<<" ";
cout << endl <<"size :"<< iDeque.size()<<endl<<endl;
}
int main()
{
cout << "This is deque tutorials " << endl<<endl;
deque<int> iDeque(20, 9);
showDeque(iDeque, 1);
for (int i = 0; i < iDeque.size(); ++i)
iDeque[i] = i;
showDeque(iDeque, 2);
for (int i = 0; i < 3; ++i)
iDeque.push_back(i);
showDeque(iDeque, 3);
iDeque.push_front(111);
showDeque(iDeque, 4);
iDeque.pop_back();
showDeque(iDeque, 5);
iDeque.pop_front();
iDeque.push_back(99);
showDeque(iDeque, 6);
deque<int>::iterator curent;
curent = find(iDeque.begin(), iDeque.end(), 1);
cout << *curent++ << endl;
cout<<*curent<<endl;
iDeque.erase(curent);
showDeque(iDeque, 7);
curent = find(iDeque.begin(), iDeque.end(), 10);
iDeque.erase(curent,curent+3);
showDeque(iDeque, 8);
curent = find(iDeque.begin(), iDeque.end(), 9);
iDeque.insert(curent, 88);
showDeque(iDeque, 9);
curent = find(iDeque.begin(), iDeque.end(), 9);
iDeque.insert(curent,5,55);
showDeque(iDeque, 10);
curent = find(iDeque.begin(), iDeque.end(), 9);
int a[] = { 1,2,3,4,5 };
std::deque<int>t(a, a + 5);
iDeque.insert(curent, t.begin(),t.end());
showDeque(iDeque, 11);
iDeque.clear();
showDeque(iDeque, 12);
}
