C++11:
default (1) |
explicit vector (const allocator_type& alloc = allocator_type()); |
---|---|
fill (2) |
explicit vector (size_type n); vector (size_type n, const value_type& val, const allocator_type& alloc = allocator_type()); |
range (3) |
template <class InputIterator>vector (InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type()); |
copy (4) |
vector (const vector& x); vector (const vector& x, const allocator_type& alloc); |
move (5) |
vector (vector&& x); vector (vector&& x, const allocator_type& alloc); |
initializer list (6) |
vector (initializer_list<value_type> il, const allocator_type& alloc = allocator_type()); |
(2)fill constractor
构造一个包含n个元素的容器。每个元素都是val的副本(如果提供)
(3) range constructor
构造一个容器,其中包含与 [first,last) 范围一样多的元素,每个元素都以相同的顺序从该范围内的相应元素构造。
(6) initializer list constractor
初始化列表构造函数 构造一个容器,其中包含il中每个元素的副本,顺序相同。
#include<vector>
#include<iostream>
int main()
{
vector<int> first; // empty vector of ints
vector<int>second(4,10);/ four ints with value 10
vector<int>third(second.begin(),second.begin()+3);//包含三个元素
vector<int>four(second.begin(),second.end());// iterating through second
vector<int>five(four);//a copy of four
// the iterator constructor can also be used to construct from arrays:
int myarray[]={1,2,3,4,5};
vector<int>six(myarray,myarray+sizeof(myarray) / sizeof(int));
std::cout << "The contents of fifth are:";
for (std::vector<int>::iterator it = fifth.begin(); it != fifth.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}