【发布时间】:2021-06-07 11:36:57
【问题描述】:
我想解决一个问题,它需要最大的子数组和它的位置。该程序的解决方案是算法介绍一书中的伪代码,但是它包含一个包含 3 个元素(低、高、总和)的返回。我能做些什么呢?如何返回三个元素?该程序易于理解,但是返回使我无法将其转换为c++。
【问题讨论】:
-
您可以创建结构/类,使用向量/数组或通过引用传递变量。
标签: c++ return divide-and-conquer
我想解决一个问题,它需要最大的子数组和它的位置。该程序的解决方案是算法介绍一书中的伪代码,但是它包含一个包含 3 个元素(低、高、总和)的返回。我能做些什么呢?如何返回三个元素?该程序易于理解,但是返回使我无法将其转换为c++。
【问题讨论】:
标签: c++ return divide-and-conquer
您可以编写一个包含 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();
【讨论】: