deque (덱)
2022. 3. 29. 19:54ㆍ자료구조
덱(deque)은 양방향 큐(double-ended queue)의 약자이다.
push_front(), push_back()으로 이름처럼 양방향으로 확장이 가능하다.
또한 리스트와는 다르게 원소에 임의 접근이 가능하다.
중간에 원소를 삽입하면 가까운 끝 방향으로 원소들을 이동한다. (이는 최대 n/2 시간 복잡도를 가짐)
#include <iostream>
#include <deque>
int main()
{
std::deque<int> dq;
dq = { 1, 2, 3, 4,5 };
dq.push_front(0); // 0, 1, 2, 3, 4,5
dq.push_back(6); // 0, 1, 2, 3, 4, 5, 6
dq.insert(dq.begin() + 4, 9); // 0, 1, 2, 3, 9, 4, 5, 6
dq.pop_back(); // 0, 1, 2, 3, 9, 4, 5
dq.pop_front(); // 1, 2, 3, 9, 4, 5
dq.erase(dq.begin() + 1); // 1, 3, 9, 4, 5
dq.erase(dq.begin() + 3, dq.end()); // 1, 3, 9
for (std::deque<int>::iterator itr = dq.begin(); itr != dq.end(); itr++) {
std::cout << *itr << std::endl;
} // 1, 3, 9
}
'자료구조' 카테고리의 다른 글
디스조인트-셋 자료 구조(Disjoint-Set) (0) | 2022.04.13 |
---|---|
해시 테이블(hash table) (0) | 2022.03.31 |
그래프(Gragh) (0) | 2022.03.31 |
힙(heap) (0) | 2022.03.30 |
이진 검색 트리(BTS, Binary Search Tree) (0) | 2022.03.30 |