如何从函数返回两个值?

Bil*_*cks 2 c++ function function-prototypes

如何设计一个函数原型,允许单个函数同时查找并返回数组中的最低值和最高值?谢谢.

Sha*_*ger 16

std::pair包括返回两个值,std::tuple推广到任意数量的值.并用std::tuplestd::tie效用函数,调用者可以接受的结果到单独的变量太多,避免了需要通过一个提取它们之一,例如:

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;
}
Run Code Online (Sandbox Code Playgroud)

当然,在这种情况下,您实际上不需要滚动自己的代码来返回输入的最小值和最大值,因为有一个模板化的实用程序函数已经执行此操作std::minmax(对于两个离散的参数和初始化列表)和std::minmax_element(对于由迭代器定义的范围)(它们都返回std::pair,并且std::pairstd::tuple两个元素完全兼容).