Deque
- LIFO, FIFO 두 가지 방식을 다 사용할 수 있는 스택큐 짬뽕.
- VECTOR는 끝부분에 삽입할 때만 빠르지만 덱은 앞뒤로 다 빠름. 하지만 중간에 삽입 삭제 시 벡터처럼 밀거나 땡겨야되는 단점을 가진다.(여러개의 블록을 할당하므로)
1. 사용
- #include <deque>
- deque<[Data Type]> [변수이름]
2. 생성자와 연산자(int로)
- vector<int> v;
- 비어있는 vector v를 생성
- vector<int> v(5);
- 0으로 초기화 된 5개의 원소를 가지는 vector v를 생성
- vector<int> v(5,2);
- 2으로 초기화 된 5개의 원소를 가지는 vector v를 생성
3. 멤버 함수
- dq.assign(5,2);
- 2의 값으로 5개의 원소 할당
- dq.at(idx);
- idx번째 원소를 참조.
- dq[idx] 보다 속도는 느리지만, 범위를 점검하므로 안전
- dq[idx];
- idx번째 원소를 참조.
- dq[idx] 보다 속도는 빠르지만, 범위를 점검하지 않음
- dq.front();
- 첫번째 원소를 참조.
- dq.back();
- 마지막 원소를 참조.
- dq.clear();
- 모든 원소 제거
- dq.push_front(3);
- dq의 첫번째 원소 앞에 원소 3을 삽입
- dq.pop_front();
- dq의 첫 번째 원소를 제거
- dq.push_back(7);
- 마지막 원소 뒤에 원소 7을 삽입
- dq.pop_back();
- 마지막 원소를 제거.
- dq.begin();
- 첫번째 원소를 가리킴(iterator 반환)
- dq.end();
- 마지막 원소를 가리킴(iterator 반환)
- dq.rbegin();
- reverse 첫번째 원소를 가리킴(iterator 반환)
- dq.rend();
- reverse 마지막 원소를 가리킴(iterator 반환)
- dq.resize(n);
- 크기를 n으로 변경(비어있는 원소는 0으로 초기화)
- dq.resize(n,2);
- 크기를 n으로 변경(비어있는 원소는 2로 초기화)
- dq.size();
- 원소의 갯수를 리턴
- dq2.swap(dq1)
- dq1과 dq2의 원소를 바꿔줌
- dq.insert(2,3);
- 2번째 위치에 3의 값을 삽입
- dq.insert(2, 3, 4);
- 2번째 위치에 3개의 4값을 삽입
- dq.erase(iter);
- iter가 가리키는 원소를 제거
- dq.empty();
- dq가 비어있으면 true를 반환
아래 링크 설명이 좋아 직접 타이핑하면서 외우는중
출처
'개발 > C++' 카테고리의 다른 글
C++ 자료구조 - Stack (0) | 2020.06.23 |
---|---|
C++ 자료구조 - unordered map(hash map) (0) | 2020.06.22 |
C++ 자료구조 - Set (0) | 2020.06.21 |
C++ 자료구조 - Map (0) | 2020.06.21 |
C++ 자료구조 - List (0) | 2020.06.19 |