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)

相关推荐

  • 瑜珈教程,怎样能快速掌握瑜伽的动作

    技术瑜珈教程,怎样能快速掌握瑜伽的动作要想快速的掌握瑜伽动作要从两方面入手瑜珈教程。1、了解人体。了解基础的人体结构知识,了解基础的人体运动知识。瑜伽每一个动作都是由人去完成的。所以对人体肌肉、骨骼、关节运动都要有所了解

    生活 2021年10月24日
  • 什是多音字吗,帮忙找多音字……要多.

    技术什是多音字吗,帮忙找多音字要多.补bu(修补) piao(姓) 乐le(快乐) yue(喜悦) 行hang(行情) xing(行走) 系 xi(关系) ji(系鞋带) 应ying(四声)应用 ying(应该) 长 z

    生活 2021年10月22日
  • 如何使用Java的MD5工具类和客户端测试类

    技术Java的MD5工具类和客户端测试类怎么使用这篇文章主要讲解了“Java的MD5工具类和客户端测试类怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的M

    攻略 2021年12月16日
  • Oracle中出现ORA-00600内部错误代码怎么办

    技术Oracle中出现ORA-00600内部错误代码怎么办这篇文章将为大家详细讲解有关Oracle中出现ORA-00600内部错误代码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获

    攻略 2021年11月17日
  • 香港多IP服务器、香港站群服务器为什么有利于SEO

    技术香港多IP服务器、香港站群服务器为什么有利于SEO网站所有者花费大量时间和金钱在搜索引擎的第一页上展示他们极具竞争力的网站。优化页面以使搜索引擎更容易阅读网站、制作SEO兼容的内容、从其他优质网站获取反向链接、发布促

    礼包 2021年11月1日
  • 修改带JAVA 自定义类的报表还要重启应用该怎么解决

    技术修改带JAVA 自定义类的报表还要重启应用该怎么解决修改带JAVA 自定义类的报表还要重启应用该怎么解决,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法

    攻略 2021年12月2日