덱(Deque)이란?

벡터의 단점을 보완하기 위해 만들어진 컨테이너

새로운 원소가 삽입될 때마다 메모리 재할당 후 이전의 값들을 복사하는 벡터와 달리

덱은 미리 일정한 크기의 메모리 블록을 할당해 둔 후 값을 저장함.

데이터의 삽입과 삭제의 위치가 정해진 큐와 달리 덱은 앞 뒤로 다 데이터를 삽입/삭제 할 수 있음

 

헤더파일 삽입

#include <deque>

using namespace std;

데이터 생성

deque <type> dq;

deque dq;

deque dq(10);

0으로 초기화된 10개 원소 가진 덱 생성

deque<int> dq = { 1, 2, 3 };

deque dq2(dq1);

dq1의 내용을 복사한 덱 dq2 생성

데이터 삽입/삭제

dq.push_front(3);

첫 번째 원소 앞에 5 삽입

dq.push_back(4);

마지막 원소 뒤에 4 추가

dq.insert(2, 5);

2번째 위치에 5 추가

dq.insert(2, 5, 4);

2번째 위치에 5개의 데이터 값 4 추가

dq.pop_front();

첫 원소 삭제

dq.pop_back();

마지막 원소 삭제

dq.clear();

데이터 다 삭제

iterator

dq.begin()

첫 번째 원소 iterator

dq.end()

마지막 원소의 다음! iterator

데이터 조회

dq.at(idx);

idx번째 데이터 참조

dq[idx];

덱 사이즈

dq.size();

데이터 개수 리턴

dq.resize(10);

덱의 크기를 10으로 변경크기가 더 증가했다면 0으로 채움

dq.resize(10,2);

덱의 크기를 10으로 변경

크기가 더 증가했다면 2로 채움

 

참고사이트

https://blockdmask.tistory.com/73

https://velog.io/@choiiis/C-STL-deque%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%A0%95%EB%A6%AC

'프로그래밍 언어 > c++' 카테고리의 다른 글

C++ sort 함수 compare 커스터마이징  (0) 2022.06.03
[Algorithm] c++ 순열 구하는 함수 next_permutation, prev_permutation  (0) 2022.05.04
[STL] 큐(Queue)  (0) 2021.10.11
[STL] vector 컨테이너  (0) 2021.09.19
STL  (0) 2021.09.19

+ Recent posts