STL vector 에서 제공되는 기능을 STL stack 에서도 다 제공
인덱싱도 가능
=> deque 는 front 에서도 O(1) 에 추가와 제거가 가능하므로,
deque 가 vector 보다 상위호환이라는 생각이 들 수 있지만,
vector 와 달리 deque 는 원소들이 메모리 상에 연속하게 배치되어 있지않다.
앞쪽과 뒷쪽에서의 추가와 제거가 모두 필요하면 STL deque 를 사용하고,
굳이 앞쪽에서의 추가와 제거가 필요하지 않고 배열과 같은 느낌으로 쓰고 싶다면 STL vector 를 쓰자 !
#include <iostream>
#include <deque>
using namespace std;
int main(void)
{
deque<int> dq;
dq.push_front(10);
dq.push_back(50);
dq.push_front(24);
for (auto data : dq)
cout << data;
if (dq.empty())
cout << "dq is empty" << "\n";
else
cout << "dq is not empty" << "\n";
dq.pop_front();
dq.pop_back();
cout << dq.back() << "\n";
dq.push_back(72);
dq.push_back(12);
cout << dq.front() << "\n";
dq[2] = 17;
dq.insert(dq.begin() + 1, 33);
dq.insert(dq.begin() + 4, 60);
dq.erase(dq.begin() + 3);
dq.clear(); // 모든 원소 제거
}