3
struct Uct
{
    std::vector<int> vec{10};
};

上面的代码创建了包含值为 10 的单个元素的向量。但我需要初始化大小为 10 的向量。像这样:

std::vector<int> vec(10);

如何通过课堂初始化来做到这一点?

4

2 回答 2

4

我认为有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){};也是具有相同属性的完全可行的选择(我认为)。

于 2021-12-30T11:23:04.853 回答
1

你可以直接使用

std::vector vec(10,0) 得到一个所有元素都等于 0 的 10 元素向量。

于 2021-12-30T13:04:06.700 回答