struct Uct
{
std::vector<int> vec{10};
};
上面的代码创建了包含值为 10 的单个元素的向量。但我需要初始化大小为 10 的向量。像这样:
std::vector<int> vec(10);
如何通过课堂初始化来做到这一点?
struct Uct
{
std::vector<int> vec{10};
};
上面的代码创建了包含值为 10 的单个元素的向量。但我需要初始化大小为 10 的向量。像这样:
std::vector<int> vec(10);
如何通过课堂初始化来做到这一点?
我认为有2个答案:
std::vector<int> vec = std::vector<int>(10);
如评论中所述,并且:
std::vector<int> vec{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
这不太可取,因为它的可读性较低且以后更难调整,但我认为它更快(在 c++17 之前),因为它不会像评论中所说的那样调用移动构造函数。
话虽如此,这Uct(): vec(10){};
也是具有相同属性的完全可行的选择(我认为)。
你可以直接使用
std::vector vec(10,0) 得到一个所有元素都等于 0 的 10 元素向量。