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

We have a vector but is not clear which the constructor is called

本文关键字:调用 构造函数 不清楚 我们有 有一个 向量 我们      更新时间:2023-10-16

这里调用哪个构造函数?

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

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

此构造函数将被调用:

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

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

来自C++参考:

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

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