有没有办法不在 c++ 中的参数中一遍又一遍地输入相同的数据类型

Is there a way to not enter the same data type over and over again in a parameter in c++?

本文关键字:一遍 输入 数据类型 有没有 参数 c++      更新时间:2023-10-16

而不是这样做,

void myFunc(double, double, double, double, double, double, double);

有没有办法限制相同数据类型的使用并精简它?我知道可能没有更简单的方法可以做到这一点,但如果有的话会很好。

如果是

在声明函数时,您可以使用可变参数模板函数。也许不是打字少,而是更灵活。这将返回双倍。适用于 C++11 及更高版本。

double myFunc() {
    return 0.0;
}
template<typename H, typename ...T> double myFunc(H head, T... tail) {
    head += myFunc(tail...);
    return head;
};
int main(int argc, char const *argv[])
{
    auto a = myFunc();
    std::cout << "a: " << a << std::endl;
    auto b = myFunc(1.0, 1.1, 1.2, 1.3);
    std::cout << "b: " << b << std::endl;
    return 0;
}

输出

答: 0
乙: 4.6

不,没有。您必须显式列出所有参数,并且没有为连续参数重复相同类型的简写。

如果函数有很多参数,您可能希望将其更改为将对象作为参数。或者,如果它们都在同一时间,您可以使用数组。

您可以使用

vectorlist甚至array对它们进行分组,并将其作为参数传递。但是,您应该确定数据的顺序,以便您可以在方法中操作正确的数据。

不,没有,这就是强类型编程语言的美妙之处。