Return 3 个元素来自 C++ 函数

Return 3 elements from function C++

我想解决一个问题,需要子数组的最大和及其位置。该程序的解决方案是算法介绍一书中的伪代码,但它包含一个 returning,其中包含 3 个元素(低、高、总和)。我该怎么办?我怎样才能return三个元素?该程序很容易理解,但是 returning 让我无法将其转换为 c++。

您可以编写一个包含 3 个 int 和 return 的结构,来自函数:

struct data
{
 int low, mid, high;
};

data fun( /* args ... */ )
{
  // ...
  return {low, mid, high};  
}

或者,如果您不想明确命名该结构,您可以 return 一个包含 3 个 intstd::tuple

std::tuple<int, int, int> fun( /* args ... */ )
{
  // ...
  return {low, mid, high};  
}

无论哪种情况,您都可以在调用站点上写:

auto [low, mid, high] = fun();