std::vector
<vector> 에 정의되어 있음. | ||
template< class T, | ||
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 | - | 원소의 타입.
| ||||
Allocator | - | 원소들을 저장하기 위해 메모리를 얻기 위해 쓰이는 할당자(allocator)이다. 이 형은 Allocator 의 요구 조건을 만족시켜야 한다. |
[편집]Specializations
표준 라이브러리에서는 효율적으로 메모리를 사용 하는 bool타입의 전용 std::vector
를 제공합니다.
space-efficient dynamic bitset (class template specialization) |
[편집]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
vector 의 생성자이다. (public member function) | |
vector 의 소멸자이다. (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) | |
(C++11) | direct access to the underlying array (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) | |
reserves storage (public member function) | |
returns the number of elements that can be held in currently allocated storage (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) | |
원소들을 서로 바꾼다 (public member function) |
[편집]Non-member functions
lexicographically compares the values in the vector (function template) | |
specializes the std::swap algorithm (function template) |