gpt4 book ai didi

c++ - 使用可变数量的浮点参数

转载 作者:IT老高 更新时间:2023-10-28 23:13:32 26 4
gpt4 key购买 nike

我正在尝试为我的 struct Polynomial 实现一个灵活的构造函数:

struct Polynomial
{
std::vector<float> coefficients;
size_t degree;
};

多项式的次数是可变的。我想要的是有一个像

这样的构造函数
Polynomial(float... _coefficients);

我试过可变参数模板:

template<float... Args>
Polynomial(Args... args);

但 float 是非类型,所以我已经完成了:

template<typename... Args>
Polynomial(Args... args);

但这允许我的系数是任何东西,而不是我想要的。我知道我可以使用:

Polynomial(size_t _degree, ...);

但这真的很不安全。

目前我正在使用:

Polynomial(std::vector<float>);

但这会强制调用如下:

Polynomial P({f1, f2, f3}); // with fn floats

所以我想知道是否有一个好的方法来做到这一点。

谢谢!

最佳答案

您可以使用 initializer_list :

#include <vector>
#include <initializer_list>

struct Polynomial {
std::vector<float> coeffs;
std::size_t degree;

Polynomial(std::initializer_list<float> init)
: coeffs{ init }, degree(init.size()) { }
};

int main() {
Polynomial p{ 1, 2, 3. };
}

关于c++ - 使用可变数量的浮点参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47303653/

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