이름공간
변수
행위

std::vector

cppreference.com
< cpp‎ | container
Defined in header <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.

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_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

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]
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]
원소들을 서로 바꾼다
(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]