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)

相关推荐

  • 双指针技巧总结

    技术双指针技巧总结 双指针技巧总结https://labuladong.gitee.io/algo/2/21/53/读完本文,你不仅学会了算法套路,还可以顺便去 LeetCode 上拿下如下题目:
    14

    礼包 2021年11月12日
  • PHP Session有什么用

    技术PHP Session有什么用这篇文章给大家分享的是有关PHP Session有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP SessionPHP session 变量用于存

    攻略 2021年11月25日
  • 舍瑟而作,子路曾皙冉有公西华侍坐实词

    技术舍瑟而作,子路曾皙冉有公西华侍坐实词《子路曾皙冉有公西华侍坐》里面的重点实词如下舍瑟而作:
    1、居则曰:居,闲居,平时在家  
    2、摄乎大国之间:摄,夹、迫近   
    3、加之以师旅:加,加到……上   
    4、比及三年

    生活 2021年10月30日
  • 三点水一个日念什么,左边三点水右边一个天念什么

    技术三点水一个日念什么,左边三点水右边一个天念什么左边三点水右边一个天是【沃】【拼 音】三点水一个日念什么: wò
    【部 首】: 氵
    【笔 画】: 7
    【五 笔】: ITDY
    【基本释义】
    1、土地肥。
    2、灌溉,浇

    生活 2021年10月25日
  • 聚焦近义词,“均匀”的近义词是什么

    技术聚焦近义词,“均匀”的近义词是什么jūn yún[释义] (形)分布或分配在各部分的数量相同聚焦近义词,时间的间隔相等。
    均匀的近义词
    近义词:平均、恰当、匀和、匀称、均匀
    一、平均 píngjūn
    (1) 按份儿均

    生活 2021年10月30日
  • 泰铢兑人民币,10万泰铢等于多少人民币

    技术泰铢兑人民币,10万泰铢等于多少人民币100000泰铢=17900人民币货币兑换1泰铢=0.179人民币元1人民币元=5.5871泰铢泰铢(ISO4217码泰铢兑人民币:THB)是泰国官方货币,由泰中央银行泰国银行发

    生活 2021年10月29日