explicit vector(const Allocator& = Allocator());
explicit vector(size_type n, const T& value = T(),
const Allocator& = Allocator());
template <class InputIterator>
vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
vector(const vector<T, Allocator>& x);
벡터 컨테이너 객체를 생성하고, 사용한 생성자에 따라 벡터 원소들을 초기화 한다.
1.
explicit vector(const Allocator& = Allocator());
explicit vector(size_type n, const T& value = T(),
const Allocator& = Allocator());
-값이 T인 원소를 n개 가지는 벡터 컨테이너를 생성한다.
template <class InputIterator>
vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
-first부터 last번째 원소까지 반복자가 순회(iterate)하며, 각각의 원소들을 생성되는 벡터 컨테이너의 원소로 복사한다. (복사할 범위의 시작과 끝을 나타내는 반복자이다. 이 때 first 가 가리키는 원소 부터, last 가 가리키는 원소바로 직전까지 복사가 된다)
vector(const vector<T, Allocator>& x);
ex) push_back함수를 통해 새로운 요소를 맨 뒤에 추가할 때,
capacity > size 보다 큰 상황이라면, 그냥 맨 뒤의 공간에 요소를 복사해 넣고 ++size가 일어난다.
capacity == size 라면, capacity가 증가한 새로운 연속된 공간을 할당하고 기존의 모든 요소들을 복사하고 (기존의 정보는 삭제) capacity > size의 상황을 만들어 놓는다고 맨 뒤에 요소를 복사한 후 ++size를 한다.
void resize( size_type count, T value = T() ); // (until C++11)
void resize( size_type count ); // (1) (since C++11)
void resize( size_type count, const value_type& value ); // (2) (since C++11)
모두 기본값을 따로 지정하지 않으면, default 생성자에 의해 모든 요소가 초기화 된다.