在这里调用哪个构造函数?
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参数在哪里?
答案 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)的别名。