【发布时间】:2020-01-07 19:11:03
【问题描述】:
尝试默认初始化一个 std::vector
#include <iostream>
#include <vector>
int main()
{
class Options
{
std::vector<int> items{100};
} options ;
std::cout << "Size:" << options.items.size() << " Items[0]:" << options.items[0] << '\n';
return 0;
}
这将打印:
尺寸 1:项目[0]:100
但这不是我想要的,我希望向量的大小为 100。
我设法做到了
class Options
{
std::vector<int> items{ std::vector<int>(100) };
} options ;
但我觉得肯定有“更好”的方法?
问候,
【问题讨论】:
-
@Evg 这对班级成员不起作用
-
您需要两个 arg 构造函数(大小和值),并且您不能使用花括号(这会给您大括号初始化)
-
C++ 标准
{}构造函数有效地从值列表初始化,您需要()来调用其他构造函数。
标签: c++ vector stl initialization