std::deque
<deque> 에 정의되어 있음. | ||
template< class T, | ||
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) |