21xrx.com
2024-12-22 23:36:06 Sunday
登录
文章检索 我的文章 写文章
C++中的函数如何返回两个值?
2023-07-04 18:51:16 深夜i     --     --
C++ 函数 返回 两个值

在C++中,函数通常返回一个值。但有时候需要函数返回两个或更多的值。在本文中,我们将讨论在C++中如何实现函数返回两个值。

1. 使用数组或结构体

一种方法是使用数组或结构体来存储多个值,并将其作为函数返回值。例如:


struct Example

  int a;

  int b;

;

Example func()

  Example ex;

  ex.a = 1;

  ex.b = 2;

  return ex;

int main() {

  Example ex = func();

  cout << ex.a << " " << ex.b << endl;

  return 0;

}

在该示例中,我们定义了一个名为Example的结构体,该结构体具有两个成员变量,a和b。我们定义了一个名为func()的函数,该函数返回一个Example类型的结构体,并在函数内部设置了a和b的值。在主函数中,我们调用func()函数并使用返回的结构体对象访问a和b的值。

2. 使用指针参数

另一种方法是将函数返回的一个值存储在指针参数中。例如:


void func(int* a, int* b) {

  *a = 1;

  *b = 2;

}

int main() {

  int x, y;

  func(&x, &y);

  cout << x << " " << y << endl;

  return 0;

}

在该示例中,我们定义了一个名为func()的函数,该函数有两个指针参数,分别用于存储a和b的值。在函数内部,我们设置a和b的值并使用已分配的内存地址修改它们。在主函数中,我们创建了两个整数变量x和y,并将它们的地址分别传递给func()函数。

3. 使用tuple

从C++11开始,可以使用标准库中的tuple来返回多个值。


#include <tuple>

tuple<int, int> func() {

  return make_tuple(1, 2);

}

int main() {

  auto [x, y] = func();

  cout << x << " " << y << endl;

  return 0;

}

在该示例中,我们定义了一个名为func()的函数,该函数返回一个tuple类型,其中包含两个整数(1和2)。在主函数中,我们使用auto关键字将返回的tuple解包并将值存储在变量x和y中。

总结

以上是三种将多个值从函数中返回的不同方法。您可以根据使用场景选择最适合您的方法。当然,还有其他方法,例如使用引用或overloading函数,但以上方法足以覆盖大多数情况。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复