[STL] Deque 덱
Deque 덱?
Double-ended Queue의 약자로 Queue에 양쪽에서 삽입, 삭제가 다 이뤄질 수 있다는 점이 추가된 자료구조이다.
Queue와는 다르게 front와 back 양쪽에서 삽입, 삭제가 다 이뤄질 수 있는 자료구조로 유용하게 사용할 수 있다.
#include <deque>
queue<int> dq;
C++
복사
Deque Library 메소드
push_front(element)
•
덱의 제일 앞에 element를 추가한다.
push_back(element)
•
덱의 제일 뒤에 element를 추가한다.
pop_front()
•
덱에 있는 원소 중 제일 앞에 있는 원소를 삭제한다.
pop_back()
•
덱에 있는 원소 중 제일 뒤에 있는 원소를 삭제한다.
front()
•
덱의 제일 앞에 있는 원소를 반환한다.
back()
•
덱의 제일 뒤에 있는 원소를 반환한다.
empty()
•
덱이 비어 있으면 true, 그렇지 않으면 false를 반환한다.
size()
•
덱의 사이즈를 반환한다.
예제)
#include <iostream>
#include <deque>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
deque<int> dq;
for (int i = 1; i <= 5; i++) {
if (i % 2 == 1) dq.push_front(i);
else dq.push_back(i);
}
for (int i = 1; i <= 5; i++) {
cout << dq.front() << '\n';
dq.pop_front();
}
}
// OUTPUT
// (front)
// 5
// 3
// 1
// 2
// 4
// (back)
C++
복사