이름공간
변수
행위

std::deque

cppreference.com
< cpp‎ | container
<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 - 원소의 타입.
TCopyAssignableCopyConstructible 의 요구 조건을 만족시켜야 한다. (until C++11)
원소가 만족시켜야 하는 조건들은 컨테이너에서 행해지는 실제 작업들에 의존한다. 일반적으로, 원소 형은 MoveConstructibleMoveAssignable 의 요구 조건을 만족시켜야 하나, 대부분의 멤버 함수들은 더 많은 조건을 요구한다. (since C++11)

[edit]

Allocator - 원소들을 저장하기 위해 메모리를 얻기 위해 쓰이는 할당자(allocator)이다. 이 형은 Allocator 의 요구 조건을 만족시켜야 한다. [edit]

[편집] Member types

Member type Definition
value_type T [edit]
allocator_type 할당자 [edit]
size_type 부호 없는 정수(unsigned int) 타입 (일반적으로 std::size_t) [edit]
difference_type 부호 있는 정수(signed int) 타입 (보통 std::ptrdiff_t) [edit]
reference Allocator::reference (until C++11)
value_type& (since C++11) [edit]
const_reference Allocator::const_reference (until C++11)
const value_type& (since C++11) [edit]
pointer Allocator::pointer (until C++11)
std::allocator_traits<Allocator>::pointer (since C++11) [edit]
const_pointer Allocator::const_pointer (until C++11)
std::allocator_traits<Allocator>::const_pointer (since C++11) [edit]
iterator RandomAccessIterator [edit]
const_iterator 상수(constant) 양방향 반복자(iterator) [edit]
reverse_iterator std::reverse_iterator<iterator> [edit]
const_reverse_iterator std::reverse_iterator<const_iterator> [edit]

[편집] Member functions

deque의 생성자이다.
(public member function) [edit]
deque의 소멸자이다.
(public member function) [edit]
컨테이너에 값을 할당한다.
(public member function) [edit]
컨테이너에 값을 할당한다.
(public member function) [edit]
연관된 할당자를 반환한다.
(public member function) [edit]
Element access
access specified element with bounds checking
(public member function) [edit]
특정 원소에 접근한다
(public member function) [edit]
첫번째 원소에 접근한다.
(public member function) [edit]
마지막 원소에 접근한다.
(public member function) [edit]
Iterators
첫번째 원소로의 반복자(iterator)를 반환한다.
(public member function) [edit]
마지막 원소로의 반복자(iterator)를 반환한다.
(public member function) [edit]
첫번째 원소로의 역방향 반복자(reverse iterator)를 반환한다.
(public member function) [edit]
마지막 원소로의 역방향 반복자(reverse iterator)를 반환한다.
(public member function) [edit]
Capacity
현재 컨테이너가 비어있는지 확인한다.
(public member function) [edit]
원소의 개수를 반환한다.
(public member function) [edit]
원소의 최대 개수를 반환한다.
(public member function) [edit]
reduces memory usage by freeing unused memory
(public member function) [edit]
Modifiers
내용물을 모두 지운다.
(public member function) [edit]
원소를 삽입한다.
(public member function) [edit]
(C++11)
원소를 바로 만들어 삽입한다.
(public member function) [edit]
erases elements
(public member function) [edit]
끝에 원소를 삽입한다.
(public member function) [edit]
constructs elements in-place at the end
(public member function) [edit]
마지막 원소를 제거한다
(public member function) [edit]
새로운 원소를 앞에 삽입한다
(public member function) [edit]
constructs elements in-place at the beginning
(public member function) [edit]
첫번째 원소를 없앤다
(public member function) [edit]
원소의 총 갯수를 바꾼다
(public member function) [edit]
원소들을 서로 바꾼다
(public member function) [edit]

[편집] Non-member functions

lexicographically compares the values in the deque
(function template) [edit]
specializes the std::swap algorithm
(function template) [edit]