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)交通法规及相关知识(科目一)——笔试,100分为满分,90分以上为合格(包含90分)科目一考什么。  2)场地驾驶(科目二)——场内,实车。只分合格和不合格。实行9项必考(全

    生活 2021年10月23日
  • 如何理解UML时序图

    技术如何理解UML时序图如何理解UML时序图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。UML时序图简介时序图(SequenceDiagram)是强调

    攻略 2021年11月23日
  • 怎么解决PostgreSQL窗口函数调用的限制

    技术怎么解决PostgreSQL窗口函数调用的限制这篇文章主要讲解了“怎么解决PostgreSQL窗口函数调用的限制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决

    攻略 2021年11月10日
  • POSTGRESQL10.3源码如何安装主从搭建

    技术POSTGRESQL10.3源码如何安装主从搭建这篇文章将为大家详细讲解有关POSTGRESQL10.3源码如何安装主从搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、下载P

    攻略 2021年11月10日
  • Linux下如何使用QQ

    技术Linux下如何使用QQ今天就跟大家聊聊有关Linux下如何使用QQ,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。其实很简单: 一、下载QQ(不是官网的

    攻略 2021年10月21日
  • 怎么解决php输出图片并显示中文乱码问题

    技术怎么解决php输出图片并显示中文乱码问题这篇文章主要讲解了“怎么解决php输出图片并显示中文乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php输出图

    攻略 2021年10月25日