21xrx.com
2024-12-22 22:17:02 Sunday
登录
文章检索 我的文章 写文章
如何在C++中让子函数返回两个值?
2023-07-12 17:27:07 深夜i     --     --
C++ 子函数 返回值 多返回值 数据结构

在编写C++程序时,有时需要让子函数能够返回两个或多个值,例如计算两个数的和与差,或者返回数组中最大和最小值。在C++中实现这个功能,有多种方法可供选择,以下是其中几种常见的方法:

1. 使用结构体

结构体是一种包含多个不同类型成员变量的自定义数据类型。在这里,我们可以定义一个结构体来存储需要返回的多个值,例如:


struct TwoValues

  int value1;

  int value2;

;

TwoValues func()

  TwoValues result;

  result.value1 = 10;

  result.value2 = 20;

  return result;

以上是一个函数`func()`的例子,它使用了自定义结构体`TwoValues`定义了一个包含两个整数类型成员变量的结构体,并在函数内部为结构体成员变量赋值,最后返回结构体实例对象`result`。当需要使用该函数返回的两个值时,可以使用点运算符来访问结构体内的成员变量:


TwoValues result = func();

cout << result.value1 << endl;

cout << result.value2 << endl;

运行结果将输出:


10

20

2. 使用指针

通过使用指针,我们可以返回指向多个值的指针,例如:


void func(int* ptr1, int* ptr2){

  *ptr1 = 10;

  *ptr2 = 20;

}

这里定义了一个void类型的函数`func()`,该函数有两个指向int类型变量的指针作为参数,并在函数内部为这两个指针指向的变量赋值。当需要使用该函数返回的两个值时,可以声明两个变量,并将其地址传递给函数:


int a, b;

func(&a, &b);

cout << a << endl;

cout << b << endl;

运行结果将输出:


10

20

3. 使用STL库

C++标准模板库(STL)提供了许多用于存储和操作数据的容器,例如vector、list和map。这些容器可以轻松地存储不同类型的多个值,并且可以通过使用容器迭代器来访问这些值。以下是一个使用vector容器返回两个整数值的例子:


vector<int> func(){

  vector<int> result;

  result.push_back(10);

  result.push_back(20);

  return result;

}

以上是一个`func()`函数的例子,它使用vector容器来存储两个整数值,并将其返回。当需要使用该函数返回的两个值时,可以获取向量中的元素并打印它们:


vector<int> result = func();

cout << result[0] << endl;

cout << result[1] << endl;

运行结果将输出:


10

20

无论使用哪种方法,都可以让子函数返回多个值。但是需要根据具体情况来选择最适合的方法。结构体方法可以轻松地保存和管理多个数据类型的值,指针方法可以在函数内部直接更改变量的值,STL方法可以存储和操作多个值。

  
  

评论区

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