덱(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 |