从C++函数中返回多个值时是否有一种首选的方法?例如,想象一个将两个整数相除并返回商和余数的函数。我经常见到的一种方式是使用引用参数:
void divide(int dividend, int divisor, int& quotient, int& remainder);
一种变体是返回一个值,并通过引用参数传递另一个值:
int divide(int dividend, int divisor, int& remainder);
另一种方法是声明一个结构体来包含所有的结果,然后返回它:
struct divide_result {
int quotient;
int remainder;
};
divide_result divide(int dividend, int divisor);
这些方式中是否有一种通常更受青睐,或者还有其他建议?
编辑:在实际的代码中,可能会有超过两个结果。它们也可能是不同的类型。
cal
的返回类型上使用auto
,使其更加简洁。(我的看法) - sfjac