21xrx.com
2024-11-22 07:18:40 Friday
登录
文章检索 我的文章 写文章
C++如何返回两个值
2023-07-07 21:16:19 深夜i     --     --
C++ 返回 两个值

在C++编程中,有时候我们需要在函数中返回多个值。虽然C++中提供了各种数据类型来存储单一的值,比如int、double等,但是如果要返回多个值,传统的方式就是定义一个结构体来存储这些值,并将结构体作为函数的返回值,但这种方式不够简便。为了解决这个问题,C++提供了两种方法来返回多个值。

第一种方法是使用指针参数。函数通过指针参数来将返回值传递给函数调用者,具体实现方法如下:


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

  *sum = a + b;

  *product = a * b;

}

该函数接受两个整数类型的参数,以及两个指向整数类型的指针。在函数体内,将a和b的和赋值给指针变量sum所指向的存储单元,将a和b的积赋值给指针变量product所指向的存储单元。使用该函数的代码如下:


int s, p;

func(3, 4, &s, &p);

cout << "sum = " << s << endl;

cout << "product = " << p << endl;

该代码的输出结果为:


sum = 7

product = 12

第二种方法是使用std::tuple。std::tuple是一个类模板,可以将多个值打包为一个元组对象,并返回该对象。可以使用std::get来获取元组中的单个值,如下所示:


#include <tuple>

std::tuple<int, int> func(int a, int b) {

  return std::make_tuple(a + b, a * b);

}

int main() {

  auto result = func(3, 4);

  cout << "sum = " << std::get<0>(result) << endl;

  cout << "product = " << std::get<1>(result) << endl;

}

输出结果与上例相同:


sum = 7

product = 12

以上是C++返回两个值的两种方法,可以根据实际情况选择使用。

  
  

评论区

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