【问题标题】:Return 3 elements from function C++ [duplicate]从函数C++返回3个元素[重复]
【发布时间】:2021-06-07 11:36:57
【问题描述】:

我想解决一个问题,它需要最大的子数组和它的位置。该程序的解决方案是算法介绍一书中的伪代码,但是它包含一个包含 3 个元素(低、高、总和)的返回。我能做些什么呢?如何返回三个元素?该程序易于理解,但是返回使我无法将其转换为c++。

【问题讨论】:

  • 您可以创建结构/类,使用向量/数组或通过引用传递变量。

标签: c++ return divide-and-conquer


【解决方案1】:

您可以编写一个包含 3 个ints 的结构并从函数中返回它:

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

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

或者,如果您不想明确命名结构,则可以只返回一个包含 3 个 ints 的 std::tuple

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

在任何一种情况下,您都可以在调用站点编写:

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

【讨论】:

    猜你喜欢
    • 2019-09-17
    • 1970-01-01
    • 2013-06-14
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多