< 덱 >
< 덱의 성질>
- 원소의 추가 = O(1)
- 원소의 제거 = O(1)
- 제일 앞/뒤의 원소 확인이 O(1)
- 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능
- !! STL deque 에서는 인덱스로 원소의 접근이 가능 !!
- STL stack, queue는 인덱스 접근 불가
< STL deque >
- deque은 vector와 달리 모든 원소들이 메모리 상에 연속적으로 배치되어 있지 않다!
#include <bits/stdc++.h>
using namespace std;
int main(void){
deque<int> DQ;
DQ.push_front(10);
DQ.push_back(50);
DQ.push_front(24);
for(auto x : DQ)cout<<x;
cout << DQ.size() << '\n';
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);
cout << DQ.front() << '\n';
DQ.push_back(12);
DQ[2] = 17;
DQ.insert(DQ.begin()+1, 33);
DQ.insert(DQ.begin()+4, 60);
for(auto x : DQ) cout << x << ' ';
cout << '\n';
DQ.erase(DQ.begin()+3);
cout << DQ[3] << '\n';
DQ.clear();
}