BOBO's Note

Deque 본문

C, C++/STL

Deque

bobo_hee 2020. 5. 23. 22:23

데크(Deque)는 Double-Ended QUEue의 줄임말로, 양쪽 끝에서 삽입/삭제가 가능한 자료구조이다.

 

C++

<deque>에 정의되어 있으며, 선형 배열 형태의 순차 컨테이너이다. 양쪽 끝에서의 삽입 및 삭제가 O(1)에 가능하다.

 

deque 구조

벡터는 연속된 공간에 메모리를 할당해 데이터를 순차적으로 저장하고, 공간이 부족하면 메모리를 재할당해 데이터를 복사한다. 이러한 재할당 오버헤드를 줄이기 위해 데크에서는 여러 개의 블록으로 쪼개어 저장한다. 따라서 포인터 연산을 통해 원소에 접근할 순 없지만, 인덱스를 통해 접근할 수는 있다.

 

대표적으로 다음과 같은 연산이 있다.

  • size(): 데크의 크기를 반환한다.

  • empty(): 데크가 비어있다면 true를, 그렇지 않은 경우 false를 반환한다.

  • front(): 데크의 맨 앞의 원소를 반환한다.

  • back(): 데크의 맨 뒤의 원소를 반환한다.

  • push_front(): 데크의 맨 앞에 원소를 추가한다.

  • pop_front(): 데크의 맨 앞의 원소를 제거한다.

  • push_back(): 데크의 맨 뒤에 원소를 추가한다.

  • pop_back(): 데크의 맨 뒤의 원소를 제거한다.

  • clear(): 데크의 모든 원소를 제거한다.

'C, C++ > STL' 카테고리의 다른 글

Associative Container  (0) 2020.06.24
Tuple  (0) 2020.05.31
Priority Queue  (0) 2020.05.27
Comments