如何设计一个函数原型,允许单个函数同时查找并返回数组中的最低值和最高值?谢谢。
答案 0 :(得分:16)
std::pair
涵盖了返回两个值,std::tuple
概括为任意数量的值。使用std::tuple
' std::tie
utility function,调用者也可以将结果接收到单独的变量中,从而无需逐个提取它们,例如:
std::tuple<int, int> returns_two()
{
return std::make_tuple(1, -1);
}
int main() {
int a, b;
std::tie(a, b) = returns_two();
// a and b are now 1 and -1, no need to work with std::tuple accessors
std::cout << "A" << a << std::endl;
}
当然,在这种情况下,您实际上不需要滚动自己的代码来返回输入的最小值和最大值,因为有一个模板化的实用程序函数已经执行此操作,std::minmax
(对于两个离散args和初始化列表)和std::minmax_element
(对于迭代器定义的范围)(返回std::pair
和std::pair
与两个元素的std::tuple
完全兼容)
答案 1 :(得分:1)
typedef struct {
int a, b;
} tuple;
tuple example() {
tuple ret = {1, 2};
return ret;
}
答案 2 :(得分:0)
使用stl pair data type
返回两个值或用户定义struct data type
以从函数返回更多值。
或者您可以从函数返回多个值的数组。
有很多方法。
答案 3 :(得分:0)
有三种可能的情况..
方法1 正在使用全局数组。
方法2 正在使用指针。
方法3 正在使用结构。
使用变量不能从C ++函数返回多个值。您只能返回具有多个值的数据结构,如结构或数组。