C++11:std::tuple

技术C++11:std::tuple C++11:std::tuple翻译来自:https://thispointer.com/c11-stdtuple-tutorial-examples/
在本文中,

C 11:std:tuple

翻译来自:https://这个指针。com/c11-stdtuple-教程-示例/

在本文中,我们将讨论什么是标准:图以及如何使用它。

什么是 std::tuple 以及我们为什么需要它

标准:图是一种可以将固定大小的异构值绑定在一起的类型。我们需要在创建元组对象时将元素的类型指定为模板参数。

创建一个 std::tuple 对象

让我们声明一个std:tuple,它是一个int、double和std:string的集合,即

//创建int、double和线的元组

std:tupleint,double,std:string结果(7,9.8,‘text’);

现在,所有三种类型的变量都封装在一个对象中。我们也可以从函数中返回这个元组对象。所以,基本上它帮助我们从一个函数返回多个值。最终,它帮助我们避免创建不必要的结构。

需要头文件

#包含元组//STD : tupl需要

从 std::tuple 获取元素

我们可以使用std:get函数通过将索引值指定为模板参数来获取隐藏在元组对象中的元素。

让我们从元组对象中获取第一个元素,即

代码//从元组中获取第一个整数值

int iVal=std:get0(结果);

同样从元组对象中获取第二个和第三个元素,即

//从元组中获取第二个双精度值

double dVal=std:get1(结果);

//从元组中获取第三个字符串值

STD :字符串STrval=STD : get 2(结果);

从元组中获取超出范围的值

获取任何索引超过元组封装的元素数量的元素都会导致编译时错误。

例如,试图从元组中获取第四个元素会导致编译时错误,因为这个元组对象只有3个元素,即

//从元组中获取第四个整数值

//将导致编译错误,因为此元组

//只有3个元素

int ival 2=STD :3360 get 4(结果);//编译错误

从元组获取值时类型转换错误

同样,从元组获取元素时使用错误的类型也会导致错误,即

//错误的强制转换将导致编译时错误

//从字符串中的元组获取第一个值

标准:字符串Strva L2=标准:获取0(结果);//编译错误

上面这行会导致编译错误,因为元组中第一个元素的类型是(同国际组织)国际组织而不是线

通过动态索引从元组中获取值

std:get中的模板参数应该是编译时常量,否则会导致编译时错误即

int x=1;

//从元组中获取第二个双精度值

//编译错误,因为x不是编译时常量

double dVal2=std:getx(结果);//编译错误

上面这行会导致编译错误,因为x不是编译时常量。下面几行可以正常工作

const int I=1;

//从元组中获取第二个双精度值

double dVal3=std:geti(结果);

#包含输入输出流

#包含元组标准:图元组需要

#包含字符串

/*

*通过将一个函数中的多个值绑定到一个

*元组对象。

*/

std:tupleint,double,std:string someFunction()

{

//创建int、double和线的元组

std:tupleint,double,std:string结果(7,9.8,‘text’);

//返回元组对象

返回结果;

}

int main()

{

//从函数中获取元组对象

std:tupleint,double,STD :3360 string result=some function();

//从元组中获取值

//从元组中获取第一个整数值

int iVal=std:get 0(结果);

//从元组中获取第二个双精度值

double dVal=std:get 1(结果);

//从元组中获取第三个字符串值

STD :字符串STrval=STD : get 2(结果);

//打印值

STD : cout ' int value=' IVal STD : endl;

STD : cout ' double value=' dVal STD : endl;

STD : cout '字符串值=' Strval STD : endl

//从元组中获取第四个整数值

//将导致编译错误,因为此元组

//只有3个元素

//int ival 2=STD :3360 get 4(结果);//编译错误

//错误的强制转换将导致编译时错误

//从字符串中的元组获取第一个值

//STD :3360字符串STrva L2=STD : get 0(结果);//编译错误

int x=1;

//从元组中获取第二个双精度值

//编译错误,因为x不是编译时常量

//double dval 2=STD : getx(结果);

const int I=1;

//从元组中获取第二个双精度值

double dVal3=std:get i(结果);

返回0;

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/112523.html

(0)

相关推荐

  • Thinkphp5.1怎么实现邮箱验证

    技术Thinkphp5.1怎么实现邮箱验证本篇内容介绍了“Thinkphp5.1怎么实现邮箱验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月16日
  • 身高英语,身高和年龄用英语怎么说

    技术身高英语,身高和年龄用英语怎么说hallo,mynameis(姓名),i`m(年龄)yearsold.i`mform(地名),myheightis(数字)centimeter.mybirthdayis(生日)ilik

    生活 2021年10月19日
  • 怎样可以,一个人怎样才能实现自己的目标

    技术怎样可以,一个人怎样才能实现自己的目标在现实生活和工作中,有些人看到周围许多人取得了成绩,再看看自己,就会产生落差感,继而困惑:为什么别人总是比我成功怎样可以?为什么我总是在原地踏步?遇到这种情况,应先问问自己:“我

    生活 2021年10月21日
  • 图解laravel请求的完整生命周期(laravel 判断模型某值持续不变)

    技术Laravel模型时间戳使用小技巧有哪些这篇文章主要介绍Laravel模型时间戳使用小技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!默认情况下,Laravel Eloquent 模型

    攻略 2021年12月20日
  • thinkphp怎么开启api(thinkphp命令行怎么设置)

    技术thinkphp大d方法怎么使用这篇文章主要介绍“thinkphp大d方法怎么使用”,在日常操作中,相信很多人在thinkphp大d方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

    攻略 2021年12月16日
  • 怎么引用html绝对路径与相对路径

    技术怎么引用html绝对路径与相对路径本篇内容介绍了“怎么引用html绝对路径与相对路径”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年11月6日