【发布时间】:2021-12-30 09:06:22
【问题描述】:
struct Uct
{
std::vector<int> vec{10};
};
上面的代码创建了一个包含值为 10 的单个元素的向量。但我需要初始化大小为 10 的向量。就像这样:
std::vector<int> vec(10);
如何使用类内初始化来做到这一点?
【问题讨论】:
-
std::vector<int> vec = std::vector<int>(10); -
@Evg,这会调用不必要的移动构造函数吗?
-
从 C++17 开始,它不是由于强制复制/移动省略。
-
可以使用
Uct构造函数来定义vector的大小。
标签: c++ in-class-initialization braced-init-list