C++ 从函数返回浮点数组
如何从调用的所有三个函数返回值C++ 从函数返回浮点数组,c++,function,return,typedef,pass-by-value,C++,Function,Return,Typedef,Pass By Value,如何从调用的所有三个函数返回值 findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE); findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE); findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION); 如果是这样的话,函数应该是这样的吗 typedef float farray[5] //we have to use typedef fa
findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE);
findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE);
findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION);
如果是这样的话,函数应该是这样的吗
typedef float farray[5] //we have to use typedef
farray FED,STATE,HOSPITAL;
FED = findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE);
STATE = findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE);
HOSPITAL = findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION);
假设数组的大小是固定的,请使用std::array:
如果大小是动态的,则类似地使用std::vector。C样式的数组在这样使用时效果不佳。改用std::array或std::vector。可以将数组包装在结构中,然后返回/传递结构的实例:
typedef float farray[5] //we have to use typedef
farray FED,STATE,HOSPITAL;
FED = findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE);
STATE = findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE);
HOSPITAL = findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION);
*farray* findwitholding(farray Gross_Pay, farray FDH_Witholding,
float Witholding)
{
for(int i = 0; i < ISIZE; i++)
FDH_Witholding[i] = Gross_Pay[i] * Witholding;
return FDH_Witholding;
}
using farray = std::array<float,ISIZE>;
farray findwitholding(const farray& gross_pay, float witholding){
farray fdh_witholding;
for(int i = 0; i != ISIZE; ++i)
fdh_witholding[i] = gross_pay[i] * witholding;
return fdh_witholding;
}
auto fed = findwitholding(gross_pay, FW_TAXRATE);
auto state = findwitholding(gross_pay, SW_TAXRATE);
auto hospital = findwitholding(gross_pay, HOSPITALIZATION);