tuple元组

1,元组简介
tuple是一个固定大小的不同类型值的集合。
std::tuple理论上可以有无数个任意类型的成员变量,而std::pair只能是2个成员,因此在需要保存3个及以上的数据时就需要使用tuple元组了。
tuple(元组)在c++11中开始引用的

2,tuple的创建和初始化

1)std::tuple<T1, T2, TN> t1;  //创建一个空的tuple对象(使用默认构造),元素分别是T1和T2...Tn类型,采用值初始化。
2)std::tuple<T1, T2, TN> t2(v1, v2, ... TN); //创建一个tuple对象,它的两个元素分别是T1和T2 ...Tn类型; 要获取元素的值需要通过tuple的成员get<Ith>(obj)进行获取
3)std::tuple<T1&> t3(ref&); // tuple的元素类型可以是一个引用
4)std::make_tuple(v1, v2); // 像pair一样也可以通过make_tuple进行创建一个tuple对象

这段代码输出如下:

2 引用和 std::make_tuple结合:

以上代码及其输出可以看出元组的元素和被引用的变量相互影响。

从取地址结果看,两者指向了同一片空间!!!

3 获取tuple值的方法:

1)get<Ith>(obj) 获取,Ith必须编译时确定,

2)利用tie进行解包元素的值,如下代码及其输出可以看出元素和变量之间只是值拷贝

3)解包占位符,通过std::ignore占位无用位置。代码如下

4 获取元素的类型std::tuple_element<position, decltype(tp)>::type

代码如下:

5 获取元组大小 std::tuple_size<decltype(tp)>::value

该值编译时已经确定。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值