본문 바로가기

알고리즘을 위한 간략 정리/자료구조 - 연속 컨테이너

[C++] 데큐(DEQUE)

핵심요약

  • 앞뒤로 원소의 삽입, 삭제가 가능한 자료구조
  • 원형큐 관련 문제에서 유용

기본 정의

  • vector와 같이 배열 기반의 구조이지만 vector의 단점을 보완
  • 메모리가 부족할 때 새로운 메모리 블럭을 할당
    ⇒ 삽입 시 성능 저하 X

헤더파일 및 선언

#include <deque>

deque <데이터 타입> 변수명;

생성자

deque dq; //비어있는 deque dq를 생성

deque dq(10); //default(0) 값으로 초기화 된 10개의 원소를 가진 dq를 생성

deque dq(10, 4); //4의 값으로 초기화된 10개의 원소를 가진 dq를 생성

deque dq2(dq1); //dq1을 복사한 dq2를 생성.

삽입 및 삭제 관련 멤버함수

dq.clear(); //모든 원소를 제거합니다.

dq.push_front(), dq.push_back(); //각각 앞과 뒤로 원소 삽입

dq.pop_front(), dq.pop_back(); //각각 앞과 뒤의 원소 삭제

//잘 쓰지않는 멤버함수들
dq.assign(4, 3); //3의 값으로 4개의 원소 할당.

dq.insert(3, 4); //3번째 위치에 4의 값을 삽입

원소 참조

dq.front(), dq.back(); //각각 맨 앞과 맨 뒤의 원소 참조

크기 관련 멤버함수

dq.size(); //원소의 개수를 리턴

dq.empty(); //dq가 비었으면 true를 리턴, 원소가 하나라도 있을경우 false 리턴