【问题标题】:We have a vector but is not clear which the constructor is called我们有一个向量,但不清楚调用了哪个构造函数
【发布时间】:2013-07-30 06:15:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ vector constructor boolean std


    【解决方案1】:

    这个构造函数将被调用:

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

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

    来自 C++ 参考:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      相关资源
      最近更新 更多