简体   繁体   English

如何初始化 std::vector<std::time_t> 在构造函数初始值设定项列表中有 n 个元素</std::time_t>

[英]How to initialize std::vector<std::time_t> with n elements in constructor initializer list

I am trying to initialize vector in constructor initializer list like so:我正在尝试在构造函数初始化列表中初始化向量,如下所示:

Foo::Foo()
    : vec{42}
{
    //  ...
}

The vector is declared as:向量被声明为:

std::vector<std::time_t> vec;

Problem is that std::time_t is numeric type also, so instead of creating vector with 42 elements as I would like, it creates one element with stored value '42'.问题是std::time_t也是数字类型,所以不是像我想要的那样创建具有 42 个元素的向量,而是创建一个具有存储值“42”的元素。

Question: is there a way to initialize such vector with size in constructor initializer list?问题:有没有办法在构造函数初始化列表中用大小初始化这样的向量?

When initialized with braced-init-list, the constructor of std::vector taking std::initializer_list is preferred;当用braced-init-list初始化时, std::vector的构造函数采用std::initializer_list是首选; for vec{42} it would initialize vec as containing 1 element with value 42 .对于vec{42} ,它会将vec初始化为包含 1 个值为42的元素。

You can apply parentheses initializer instead of braced-init-list (which is a C++11 feature).您可以应用括号初始化程序而不是花括号初始化列表(这是 C++11 功能)。

Foo::Foo()
    : vec(42) // initialize vec as containing 42 default-initialized elements
{
    //  ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在构造函数初始值设定项列表中初始化std :: unique_ptr对象的类成员std :: vector? - How do I initialize a class member `std::vector` of `std::unique_ptr` object in the constructor initializer list? 放置模板化的std :: array <std::vector<T> ,N&gt;在构造函数初始值设定项列表中 - Place templated std::array<std::vector<T>, N> in constructor initializer list std::vector 中的初始化列表构造函数 - initializer list constructor in std::vector 在类的初始化器列表中初始化std :: vector - Initialize std::vector in class's initializer list 如何使用初始化列表来初始化 std::variant? - How to use initializer list to initialize std::variant? 是不可能转换std :: vector <T> 到std :: initializer_list <T> ? - Is it not possible to convert a std::vector<T> to an std::initializer_list<T>? 如何将 std::initializer_list 分配给向量 - how to assign std::initializer_list to a vector 初始化std :: array <T,N> 当T不是默认可构造的时,在构造函数初始化器列表中 - Initialization of std::array<T,N> in constructor initializer list when T is not default-constructible 如何同时接受 std::vector 和 std::initializer_list - How to accept both std::vector and std::initializer_list 为什么 std::vector 构造函数通过复制接受初始化列表? - Why does the std::vector constructor accept initializer list by copy?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM