如何在构造函数初始值设定项列表中使用 n 个元素初始化 std::vector<std::time_t>
How to initialize std::vector<std::time_t> with n elements in constructor initializer list
我正在尝试初始化构造函数初始值设定项列表中的矢量,如下所示:
Foo::Foo()
: vec{42}
{
// ...
}
向量声明为:
std::vector<std::time_t> vec;
问题是std::time_t
也是数字类型,所以它不是像我想要的那样创建具有 42 个元素的向量,而是创建一个具有存储值"42"的元素。
问题:有没有办法在构造函数初始值设定项列表中初始化这种向量的大小?
当使用大括号初始化列表初始化时,首选std::vector
的构造函数std::initializer_list
;对于vec{42}
,它将vec
初始化为包含 1 个值为42
的元素。
您可以应用括号初始值设定项而不是大括号初始化列表(这是 C++11 功能(。
Foo::Foo()
: vec(42) // initialize vec as containing 42 default-initialized elements
{
// ...
}
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- 如何在旧c++中初始化const-std向量
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 为什么std::vector和std::valarray初始化构造函数不同
- 使用通用值初始化 std::map,不重复
- std::initializer_list,大括号初始化和标头
- 标准::unordered_map 中的 std::array 的值初始化
- 使用 std::index_sequence 初始化具有固定大小数组成员的 POD 结构容器
- 初始化 std::vector 替换为单大括号而不是双大括号
- 包含 std::list 的结构体的 C++ 初始化
- 在构造函数中使用可变参数初始化 std::tuple
- 使用 std::分配器在 constexpr 中进行默认初始化
- 使用大括号初始化 std::vector 使用初始值设定项列表
- 为什么初始化 std::vector 时不能使用模板整数?
- 使用 std::ios_base::Init 正确初始化全局变量
- 如何在构造函数参数中初始化"std::set"?
- 初始化 std::数组 of Eigen::Map
- C++ - std::构造函数中的矢量初始化
- C STD ::初始化类对象中的Alloc错误错误
- std::初始化列表中的数组初始值设定项列表初始化