C++ 具有不同参数的相同函数
我需要写一个求和函数来添加参数。问题是我需要编写一个函数,但我需要使用不同的参数调用。这里有一个例子 sum2,5->7 sum3,5,10->18C++ 具有不同参数的相同函数,c++,C++,我需要写一个求和函数来添加参数。问题是我需要编写一个函数,但我需要使用不同的参数调用。这里有一个例子 sum2,5->7 sum3,5,10->18 有没有一个功能可以实现这一点?是的!使用C++11,您可以生成一个可变函数。这是代码 int sum(int n, ...){ va_list list; va_start(list ,n); int x; int s=0; for(int i=0; i<n; i++){ x = va_ar
有没有一个功能可以实现这一点?是的!使用C++11,您可以生成一个可变函数。这是代码
int sum(int n, ...){
va_list list;
va_start(list ,n);
int x;
int s=0;
for(int i=0; i<n; i++){
x = va_arg(list,int);
s+=x;
}
return s;
}
大体上,您可以调用sum2、2、5
第一个参数是您拥有的参数数
此外,您还可以调用sum3、3、5、10,它们将返回18。sumint n_1=0、int n_2=0、int n_3=0
您可以调用一个、两个或三个参数,也可以使用向量或一组数字,并将该对象传递给函数。然后执行该操作并返回您的总和 在C++11及更高版本中,您可以使用: 整素数值{ 返回值; } 样板 int sumint值,目标。。。法格斯{ 返回值+sumFargs。。。; } sum2,5; sum3,5,10; 在C++17及更高版本中,可以使用折叠表达式删除递归: 样板 国际sumTargs。。。法格斯{ 返回法格斯+。。。; } 或者,在C++11及更高版本中,可以使用std::initializer\u list: 包括 int sumstd::初始值设定项\列表值{ int结果=0; 对于int值:值{ 结果+=数值; } 返回结果; } 和{2,5}; 和{3,5,10}; 然后使用以移除手动回路: 包括 包括 int sumstd::初始值设定项\列表值{ 返回std::acgregateValues.begin,values.end,0; } 如果出于某种原因,您没有使用C++11编译器,则可以使用数组: 样板 int sumint和value[N]{ int结果=0; 对于int i=0;i