首页 > 编程语言 >C++函数返回两个或多个返回值的方法

C++函数返回两个或多个返回值的方法

时间:2022-12-16 08:33:06浏览次数:52  
标签:函数 double C++ paf pair 返回值

本文介绍C++语言中,一个函数返回两个及以上、同类型或不同类型的返回值的方法。

对于C++而言,其不能像Python等语言一样在一个函数中返回多个值;但是我们也会经常遇到需要返回两个甚至更多个值的需求。针对这种情况,我们可以通过pair、tuple(元组)等数据结构,实现C++函数返回两个或多个返回值。本文就以pair为例,介绍二者的具体用法。

首先,我们需要将C++函数的类型定义为pair<>,其中<>内为两个返回值各自的数据类型。例如,如以下代码所示,我们定义了函数raster_to_series,函数类型为pair<double, double*>,表示这一函数的返回值有两个,且两个返回值的数据类型分别为double与double*。

pair<double**, double*> raster_to_series(double** pafScanline)
{
// 这里是函数的代码部分
// ...
    return make_pair(pixel_paf, miss_rate_paf);
}

其中,在函数的返回值部分,我们需要基于make_pair()函数,将数据类型分别为double**与double*的两个变量放在一起,形成pair这一结构,再进行返回。

  • 其次,以上pair、make_pair()等都是定义在std这一命名空间内的,因此需要首先声明一下这一命名空间
  • 再次,在调用这一函数前,我们首先需要定义一个pair <double**, double*>类型的变量,并将函数的返回值赋给它。
using namespace std;

int main() {
    pair <double**, double*> pair_paf = raster_to_series(pafScanline);
    double** pixel_paf = pair_paf.first;
    double* miss_rate_paf = pair_paf.second;
    return 0;
}

随后,通过.first与.second命令,分别获取pair<double**, double*>中的两个变量。

至此,我们即实现了通过一个C++函数返回两个返回值的方法。

如果需要返回三个或更多的返回值,则可以基于tuple(元组)这一数据结构,用类似于上述操作的方法来实现。举一个例子,假如我们想通过一个函数返回三个返回值,就需要将前述代码中函数的类型定义为tuple<int, double, int>,将make_pair()函数更改为make_tuple(),且在调用函数时首先将返回值赋给一个tuple<int, double, int>类型的数据,再依次从这一元组类型的数据中提取出三个返回值的具体数值。

标签:函数,double,C++,paf,pair,返回值
From: https://www.cnblogs.com/edkong/p/16986455.html

相关文章

  • 「REMAKE C++」Day 2
    Day2今天的学习主要是阅读C++Primer第2章结尾以及第3章。decltype类型指示符decltype(f())sum=x;sum类型与f返回类型相同。decltype((variable)),......
  • 函数
    deffunction_tips():importdatetimemot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种的人一定能笑着收......
  • 5.python-函数式编程
    函数式编程(1)定义:用一系列函数解决问题。--函数可以赋值给变量,赋值后变量绑定函数。--允许将函数作为参数传入另一个函数。(2)高阶函数:将函数作为参数或返回值的函数......
  • Dev c++如何生成32位exe或64位exe
    以a32.c和a64.c为例生成32位exe 生成64位exe ......
  • C#内联函数 特性 MethodImplOptions.AggressiveInlining)
    https://www.cnblogs.com/cdaniu/p/15900255.htmlImpl:implement的缩写内联函数在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议......
  • python-函数
    python-函数函数的作用封装代码,提高代码的重用性函数的使用函数的使用方法:先定义在调用函数的定义把代码封装到函数的内部函数的调......
  • C语言中将二维数组作为函数参数来传递
    c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一, 形参给出第二维的长度。例如:#include<stdio.h>voidfunc(intn,char str[][5]){ inti; f......
  • 400+条实用C/C++框架、库、工具整理 ,你能想到的都在这里了
    正文: 超级值得收藏的C/C++资料宝库,汇总了400+条C++框架、库和工具。内容包括C/C++各个领域:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代......
  • [Glib] GObject 的 dispose 和 finalize 成员函数的各自作用
    ​​GObject学习教程---第十一章8本文是学习学习他人的博客的心得(具体详见“楼主见解”),如果源网站可访问的话,建议直接访问源网站:楼主见解:主要讲解析构为什么需要2个函数来实......
  • C/C++电子英汉词典
    C/C++电子英汉词典设计课题:电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找......