Deque 컨테이너
vector 컨테이너와 비슷하게 동작하지만 앞으로도 삽입과 삭제가 가능한 컨테이너
vector와 다른 push_back
vector에서의 push_back은 기존 메모리에 필요한 메모리를 추가한 메모리공간에 원소들을 삽입했지만
deque의 push는 원소가 여러 메모리 블록에 나뉘어 저장된다.
Deque의 주요 인터페이스
템플릿 형식 | |
template <class T, class _Alloc = allocator<T> > class deque |
T는 deque 컨테이너 원소의 형식 |
생성자
생성자 | |
deque dq | dq는 빈 컨테이너 |
deque dq(n) | 0원소 n개로 초기화된 컨테이너 |
deque dq(n, x) | x원소 n개로 초기화된 컨테이너 |
deque dq(dq2) | dq는 dq2 컨테이너의 복사본 (복사 생성자 호출) |
deque dq(b,2) | dq는 반복자 구간 [b, e)로 초기화된 원소를 같는다. |
멤버함수
멤버함수 | |
dq.assign(n,x) | dq에 x값으로 n개의 원소를 할당한다 |
dq.assign(b,e) | dq에 반복자 b부터 e까지 시퀀스 구간으로 할당한다. |
dq.at(i) | dq에 i번째 원소를 참조한다. |
dq.back() | dq에 마지막으로 삽입된 원소를 참조한다. |
p=dq.begin() | p는 dq의 첫 원소를 가리키는 반복자 |
dq.clear() | dq의 모든 원소를 제거한다. |
dq.empty() | dq가 비어있는지 확인 |
p=dq.end() | p는 dq의 끝을 표시하는 반복자 |
q=dq.erase(p) | dq의 p가 가리키는 원소를 제거하고 q에는 다음 원소를 넣는다. |
q=dq.erase(b,e) | dq의 반복자 b부터 e 까지의 시퀀스 구간을 제거하고 q에 다음 원소를 넣는다. |
dq.front() | dq의 첫번째 원소를 참조한다. |
q=dq.insert(p,x) | dq에 p가 가리키는 위치에 x를 삽입한다. q는 삽입한 원소를 가리키는 반복자. |
dq.insert(p,n,x) | dq에 p가 가리키는 위치에 x를 n개 삽입한다. |
dq.insert(p,b,e) | dq에 p가 가리키는 위치에 반복자 b부터 e까지의 시퀀스 구간원소를 삽입한다. |
x=dq.max_size() | x는 dq가 담을 수 있는 최대 원소의 개수다.(메모리 크기) |
dq.pop_back() | dq에 마지막 원소를 제거한다. |
dq.pop_front() | dq의 첫 원소를 제거한다. |
dq.push_back(x) | dq에 x를 가장 뒤에 삽입한다. |
dq.push_front(x) | dq의 앞에 x를 삽입한다. |
p=dq.rbegin() | p는 dq의 역 순차열의 첫번째 원소를 가리키는 반복자(reverse begin의 줄임말로 end()와 같다) |
p=dq.rend() | p는 dq의 역 순차열의 마지막 원소를 가리키는 반복자(reverse end의 줄임말로 begin()와 같다) |
dq.reserve(n) | n개의 원소를 저장할 공간을 예약한다. |
dq.resize(n) | dq를 n의 크기로 변경하고 확장되는 공간의 값을 기본값(0)으로 초기화한다. (작아지면 삭제됨) |
dq.resize(n, x) | dq를 n의 크기로 변경하고 확장되는 공간의 값을 x값으로 초기화한다. (작아지면 삭제됨) |
dq.size( ) | 원소의 갯수 |
dq.swap(dq2) | dq와 dq2를 swap한다. |
연산자
연산자 | |
dq1 == dq2 | dq1과 dq2의 모든 원소가 같은가 (bool 형식) |
dq1 != dq2 | dq1과 dq2의 모든 원소 중 하나라도 다른 원소가 있는가? (bool 형식) |
dq1 < dq2 | dq2가 dq1보다 하나라도 큰 원소가 있는가? (bool 형식) |
dq1 <= dq2 | dq2가 dq1보다 하나라도 같거나 큰 원소가 있는가? (bool 형식) |
dq1 > dq2 | dq1이 dq2보다 하나라도 큰 원소가 있는가? (bool 형식) |
dq1 >= dq2 | dq1이 dq2보다 하나라도 같거나 큰 원소가 있는가? (bool 형식) |
dq[i] | dq의 i번째 원소를 참조한다. (const와 비 const 버전이 있으며 범위 점검이 없음) |
멤버형식
멤버형식 | |
allocator_type | 메모리 관리자 형식 |
const_iterator | const 반복자 형식 |
const_pointer | const value_type *형식 |
const_reference | const value_type& 형식 |
const_reverse_iterator | const 역 반복자 형식 |
difference_type | 두 반복자 차이의 형식 |
iterator | 반복자 형식 |
pointer | value_type* 형식 |
reference | value_type& 형식 |
reverse_iterator | 역 반복자 형식 |
size_type | 첨자(index)나 원소의 개수 등의 형식 |
value_type | 원소의 형식 |
'C++ > STL' 카테고리의 다른 글
[STL] 6장 문제풀이 (0) | 2025.03.17 |
---|---|
[STL] list 컨테이너 (0) | 2025.03.16 |
[STL] Vector 컨테이너 (0) | 2025.03.10 |
[STL] 5장 문제풀이 (0) | 2025.03.08 |
[STL] 할당기 (0) | 2025.03.03 |