std::deque
| <deque> 에 정의되어 있음.
|
||
template< class T, class Allocator = std::allocator<T> > class deque; |
||
std::deque (double-ended queue) is an indexed sequence container that allows fast insertion and deletion at both its beginning and its end. In addition, insertion and deletion at either end of a deque never invalidates pointers or references to the rest of the elements.
As opposed to std::vector, the elements of a deque are not stored contiguously: typical implementations use a sequence of individually allocated fixed-size arrays.
The storage of a deque is automatically expanded and contracted as needed. Expansion of a deque is cheaper than the expansion of a std::vector because it does not involve copying of the existing elements to a new memory location.
The complexity (efficiency) of common operations on deques is as follows:
- Random access - constant O(1)
- Insertion or removal of elements at the end or beginning - amortized constant O(1)
- Insertion or removal of elements - linear O(n)
std::deque meets the requirements of Container, AllocatorAwareContainer, SequenceContainer and ReversibleContainer.
Template parameters
| T | - | 원소의 타입.
| ||||
| Allocator | - | 원소들을 저장하기 위해 메모리를 얻기 위해 쓰이는 할당자(allocator)이다. 이 형은 Allocator 의 요구 조건을 만족시켜야 한다.
|
Member types
| Member type | Definition |
value_type
|
T
|
allocator_type
|
할당자
|
size_type
|
부호 없는 정수(unsigned int) 타입 (일반적으로 std::size_t) |
difference_type
|
부호 있는 정수(signed int) 타입 (보통 std::ptrdiff_t) |
reference
|
Allocator::reference (until C++11)value_type& (since C++11)
|
const_reference
|
Allocator::const_reference (until C++11)const value_type& (since C++11)
|
pointer
|
Allocator::pointer (until C++11)std::allocator_traits<Allocator>::pointer (since C++11)
|
const_pointer
|
Allocator::const_pointer (until C++11)std::allocator_traits<Allocator>::const_pointer (since C++11)
|
iterator
|
RandomAccessIterator
|
const_iterator
|
상수(constant) 양방향 반복자(iterator) |
reverse_iterator
|
std::reverse_iterator<iterator>
|
const_reverse_iterator
|
std::reverse_iterator<const_iterator>
|
Member functions
deque의 생성자이다. (public member function) | |
deque의 소멸자이다. (public member function) | |
| 컨테이너에 값을 할당한다. (public member function) | |
| 컨테이너에 값을 할당한다. (public member function) | |
| 연관된 할당자를 반환한다. (public member function) | |
Element access | |
| access specified element with bounds checking (public member function) | |
| 특정 원소에 접근한다 (public member function) | |
| 첫번째 요소에 접근한다. (public member function) | |
| 마지막 요소에 접근한다. (public member function) | |
Iterators | |
| 첫번째 원소로의 반복자(iterator)를 반환한다. (public member function) | |
| 마지막 원소로의 반복자(iterator)를 반환한다. (public member function) | |
| 첫번째 원소로의 역방향 반복자(reverse iterator)를 반환한다. (public member function) | |
| 마지막 원소로의 역방향 반복자(reverse iterator)를 반환한다. (public member function) | |
Capacity | |
| 현재 컨테이너가 비어있는지 확인한다. (public member function) | |
| 원소의 개수를 반환한다. (public member function) | |
| 원소의 최대 개수를 반환한다. (public member function) | |
(C++11) |
reduces memory usage by freeing unused memory (public member function) |
Modifiers | |
| 내용물을 모두 지운다. (public member function) | |
| 원소를 삽입한다. (public member function) | |
(C++11) |
원소를 바로 만들어 삽입한다. (public member function) |
| 원소를 삭제한다 (public member function) | |
| 끝에 원소를 삽입한다. (public member function) | |
(C++11) |
constructs elements in-place at the end (public member function) |
| 마지막 원소를 제거한다 (public member function) | |
| 새로운 원소를 앞에 삽입한다 (public member function) | |
(C++11) |
constructs elements in-place at the beginning (public member function) |
| 첫번째 원소를 없앤다 (public member function) | |
| 원소의 총 갯수를 바꾼다 (public member function) | |
| 원소들을 서로 바꾼다 (public member function) | |
Non-member functions
| lexicographically compares the values in the deque (function template) | |
| specializes the std::swap algorithm (function template) |