본문 바로가기
Develop/Ps

[CS/C++] STL 덱(Deque) 사용법

by J-rain 2023. 4. 12.

덱(Deque)이란?

STL 컨테이너 라이브러리 중 하나인 Deque(Double Ended Queue) 덱은 큐(Queue)와 비슷하지만 큐와 다르게 삽입과 삭제가 앞, 뒤 양쪽으로 모두 가능하다.

  • 덱의 삽입과 삭제는 양쪽 끝(앞, 뒤)에서 이루어진다.
  • 크기가 가변적이다.
  • 인덱스가 존재하기 때문에 임의의 원소에 접근이 가능하다. 

Deque 사용법

 

Deque 선언

#include <deque>  // deque가 들어있는 헤더파일
deque<int> dp;    // int형 덱 선언
deque<char> dp;   // char형 덱 선언

 

Deque의 기타 메서드

  • dq.begin() : dq의 첫 번째 원소를 가리키는 iterator
  • dq.end() : dq의 마지막 원소를 가리키는 iterator
  • dq.front() : dq의 첫 번째 원소
  • dq.back() : dq의 마지막 원소
  • dq.at(n) : dq의 n번째 원소
  • dq.assign(n) : 원소 n개를 0으로 초기화
  • dq.assign(n,1) : 원소 n개를 1로 초기화
  • dq.push_front(x) : dq의 첫 번째 원소에 'x' 추가
  • dq.push_back(x) : dq의 마지막 원소에 'x' 추가
  • dq.pop_front() : dq의 첫 번째 원소 삭제
  • dq.pop_back() : dq의 마지막 원소 삭제
  • dq.size() : dq의 원소 개수 리턴
  • dq.resize(m) : dq의 메모리 공간 크기를 m으로 변경하고 늘어난 부분은 0으로 초기화
  • dq.clear() : dq 전체 원소 clear!
  • dq.insert(iterator, x) : iterator가 가리키는 위치에 원소 'x' 삽입
    (기존 원소들은 한 칸씩 뒤로 밀려난다.)
  • dq.erase(iterator) : iterator가 가리키는 위치의 dq원소를 삭제

 

Deque 전체 출력

Queue와 다르게 Deque는 인덱스 접근이 가능하다.

배열에서 요소에 접근하기 위해 사용한 [ ]을 쓸 수 있다.

 

'Develop > Ps' 카테고리의 다른 글

[C++] STL sort함수 사용법  (0) 2023.07.18
[C++] STL 스택(stack) 사용법  (0) 2023.04.13
[CS/C++] STL 큐(Queue) 사용법  (0) 2023.04.11
BOJ(2609).cpp 유클리드 호제법  (0) 2023.04.05
BOJ(1009).cpp 모듈러 연산(나머지 연산)  (0) 2023.03.28

댓글