0

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

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);

构造函数中的布尔参数在哪里?

4

1 回答 1

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 是容器中元素的类型,在vector中定义为其第一个模板参数(T)的别名。

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

于 2013-07-30T06:19:23.987 回答