gpt4 book ai didi

c++ - 像数组一样初始化类对象

转载 作者:行者123 更新时间:2023-11-27 23:36:58 25 4
gpt4 key购买 nike

我正在为一个学校项目创建一个自定义 vector 类,我希望能够像这样初始化它:

vector x = { 2, 3, 4, 5 };

C++ 有什么办法可以做到这一点吗?

这是我类(class)的标题:

class vector {
private:

int vsize;
int valloc;
double* values;

public:

vector() : vsize(0), valloc(0), values(nullptr) {}
vector(???);
vector(const vector& v);
int size() const { return vsize; };
int alloc() const { return valloc; };
void resize(int newsize);
void insert(double x);
void insert(double x, int index);
double* value() const { return values; };
double value(int index) const { return *(values + index - 1); }

};

最佳答案

您可以通过添加一个采用 std::initialzer_list<double> 的构造函数来支持它.

vector(std::initializer_list<double> init) : vsize(init.size()),
valloc(init.size()),
values(new double[init.size()])
{
std::copy(init.begin(), init.end(), values);
}

您可以使用模板使其更加灵活。

template <typename T>
vector(std::initializer_list<T> init) : vsize(init.size()),
valloc(init.size()),
values(new double[init.size()])
{
std::copy(init.begin(), init.end(), values);
}

关于c++ - 像数组一样初始化类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564265/

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