<分区>
struct Uct
{
std::vector<int> vec{10};
};
上面的代码创建了包含值为 10 的单个元素的 vector 。但是我需要用大小 10 来初始化 vector 。就像这样:
std::vector<int> vec(10);
我如何使用类内初始化来做到这一点?
<分区>
struct Uct
{
std::vector<int> vec{10};
};
上面的代码创建了包含值为 10 的单个元素的 vector 。但是我需要用大小 10 来初始化 vector 。就像这样:
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){};
也是具有相同属性的完全可行的选项(我认为)。
关于c++ - 具有大小的 vector 的类内初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70529499/