이름공간
변수
행위

std::vector

cppreference.com
< cpp‎ | container
 
 
 
 
<vector> 에 정의되어 있음.
template<

    class T,
    class Allocator =std::allocator<T>

>class vector;

std::vector는 동적 크기를 가진 배열을 캡슐화한 연속적인(sequence) 컨테이너입니다.

각 요소는 연속적으로 저장되고, 이는 요소 뿐만이 아니라 반복자를 통해 액세스 될 수 있다는 것을 의미합니다. 또한 요소에 대한 기존 포인터를 오프셋으로 사용할 수 있습니다. This means that a pointer to an element of a vector may be passed to any function that expects a pointer to an element of an array.(since C++03)

The storage of the vector is handled automatically, being expanded and contracted as needed. Vectors usually occupy more space than static arrays, because more memory is allocated to handle future growth. This way a vector does not need to reallocate each time an element is inserted, but only when the additional memory is exhausted. The total amount of allocated memory can be queried using capacity() function. Extra memory can be returned to the system via a call to shrink_to_fit().

Reallocations are usually costly operations in terms of performance. reserve() function can be used to eliminate reallocations if the number of elements is known beforehand.

벡터에 대한 일반적인 연산의 시간 복잡도는 아래와 같습니다. :

  • 임의 접근 - 상수 시간 O(1)
  • 마지막 요소에 대한 삽입/삭제 - 아모타이즈드(amortized) 상수 시간 O(1)
  • 요소의 삽입/삭제 - 마지막 요소로 부터의 거리에 비례 시간 O(n)

std::vector 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]

[편집]Specializations

표준 라이브러리에서는 효율적으로 메모리를 사용 하는 bool타입의 전용 std::vector를 제공합니다.

space-efficient dynamic bitset
(class template specialization)[edit]

[편집]Member types

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

[편집]Member functions

vector의 생성자이다.
(public member function)[edit]
vector의 소멸자이다.
(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]
(C++11)
direct access to the underlying array
(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]
reserves storage
(public member function)[edit]
returns the number of elements that can be held in currently allocated storage
(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]
원소를 삭제한다
(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]
원소들을 서로 바꾼다
(public member function)[edit]

[편집]Non-member functions

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