할머니의 콤퓨타 도전기
(STL) deque 사용법 본문
1. 덱(Deque) 이란?
- double-ended queue
- 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조 (queue + stack)
2. deque container 사용
- 헤더파일 추가
- 선언 : deque<[data type]> [변수 이름]
3. deque의 멤버 함수
(deque dq로 선언되어있다고 가정)
- dq[idx] : idx 번째 원소 참조
- dq.front() : 첫 번째 원소 참조
- dq.back() : 맨 마지막 원소 참조
- dq.clear() : 모든 원소 제거
- dq.push_front(1) : dq의 첫 번째 원소 앞에 1 삽입
- dq.pop_front() : dq의 첫 번째 원소 제거
- dq.push_back(1) : dq의 마지막 원소 뒤에 5 삽입
- dq.pop_back() : dq의 마지막 원소 제거
- dq.begin() : dq의 첫 번째 원소 가리킴 (deque::iterator iter = dq.begin();)
- dq.end() : dq의 마지막 원소의 ‘다음’을 가리킴 (deque::iterator iter = dq.end();)
- dq.rbegin() : reverse begin, 맨 마지막 원소를 마치 첫 번째 원소처럼 가리킴 (역으로)
- dq.rend() : reverse end, 맨 첫번째 원소의 ‘앞'을 마지막 원소의 ‘다음'처럼 가리킴
- dq.resize(n) : 크기를 n으로 변경, 비어있는 원소를 0으로 초기화
- dq.resize(n, 1) : 크기를 n으로 변경, 비어있는 원소를 1로 초기화
- dq.size() : 원소의 개수 리턴
- dq2.swap(dq1) : dq1과 dq2를 swap 함
- dq.insert(3, 4) : 3번째 인덱스에 4의 값을 삽입, 삽입한 곳의 iterator 반환
- dq.insert(1, 2, 3) : 1번째 위치에 2개의 3값을 삽입, 삽입 시에 앞뒤 원소 개수를 판단하여 적은 쪽으로 미루어 삽입
- dq.erase(iter) : iter가 가리키는 원소를 제거, 제거한 곳의 iterator반환
- dq.empty() : dq가 비어있으면 true, 그렇지 않으면 false
'Program Language > C++' 카테고리의 다른 글
(C++) tolower, toupper 대소문자 변환 (0) | 2021.01.30 |
---|---|
priority queue 비교 연산자 구현 (0) | 2021.01.30 |
(STL) map vs unordered_map (0) | 2021.01.06 |
(STL) map 사용법 (0) | 2020.08.03 |
벡터 중복 원소 제거하기 (sort, unique, erase) (0) | 2020.07.31 |
Comments