我们有一个向量但不清楚构造函数的调用

时间:2013-07-30 06:15:28

标签: c++ vector constructor boolean std

在这里调用哪个构造函数?

std::vector<bool> v(256, false);

四个构造函数的容器向量:

default (1) 
explicit vector (const allocator_type& alloc = allocator_type());
fill (2)    
explicit vector (size_type n, const value_type& val = value_type(),
                 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);

构造函数中的boolean参数在哪里?

1 个答案:

答案 0 :(得分:3)

将调用此构造函数:

explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());

value_type是vector包含的元素类型的typedef。对于std::vector<bool>,value_type为bool。所有256个元素都将填充false值。

来自C ++参考:

val - 用于填充容器的值。容器中的每个n元素都将初始化为该值的副本。成员类型value_type是容器中元素的类型,在向量中定义为其第一个模板参数(T)的别名。

http://www.cplusplus.com/reference/vector/vector/vector/