핵심요약
- 앞뒤로 원소의 삽입, 삭제가 가능한 자료구조
- 원형큐 관련 문제에서 유용
기본 정의
- 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 리턴