gpt4 book ai didi

c++ - 在构造函数初始化列表中初始化 std::vector 数组

转载 作者:搜寻专家 更新时间:2023-10-31 02:08:20 28 4
gpt4 key购买 nike

通常在编写构造函数时,我会尝试在成员初始化列表中初始化尽可能多的类成员,包括 std::vector 等容器。

class MyClass
{
protected:
std::vector<int> myvector;

public:
MyClass() : myvector(500, -1) {}
}

出于技术原因,我现在需要将其拆分为一个 vector 数组。

class MyClass
{
protected:
std::vector<int> myvector[3];

public:
MyClass() : myvector[0](500, -1), myvector[1](250, -1), myvector[2](250, -1) {}
}

事实证明,我无法以这种方式初始化 vector 数组。我究竟做错了什么?或者这是不可能的?

当然,我仍然可以使用 assign 在 ctor 的主体中执行此操作,但我更愿意在成员初始化列表中执行此操作。

最佳答案

你应该初始化整个数组,而不是每个元素。初始化数组的正确语法应该是

MyClass() : myvector {std::vector<int>(500, -1), std::vector<int>(250, -1), std::vector<int>(250, -1)} {}

关于c++ - 在构造函数初始化列表中初始化 std::vector 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47690386/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com