C++STL之 tuple

C++ tuple  的使用说明

 

c++中的tuple是一个允许存放多种不同的数据类型的容器,是针对pair的泛型,和pair一样在std 的namespace中,在使用的时候,需要引用头文件,同时注意namespace;

可用函数

和tuple相关的一共有四个函数,下面分别对其进行介绍

 

1. make_tuple

创建并初始化tuple

auto tup = std::make_tuple("liu","yi","jiang","is",6,1,9);

该代码创建的tuple 对应类型如下,

tuple<const char*,  char*, char*, char*, int, int, int>

不难看出tuple中并不要求元素的类型相同,同时可以支持多个元素。

需要注意的是,tuple变量中的元素数量,在创建完成后就是固定不变的,不能增加或减少。

2.tie

分而取之,获取tuple中的单个元素

auto tup = std::make_tuple('l',6,2.33);
char a;
int b;
double c;
std:tie(a,b,c) = tup;
std::cout<<"a="<<a<<" "<<"b="<<b<<" "<<"c="<<c<<endl;

程序的输出结果为a=l b=6 c=2.33

如果不想取某一位的值,可以使用ingore代替:

auto tup = std::make_tuple('l',6,2.33);
char a;
double c;
std:tie(a,ingore,c) = tup;
std::cout<<"a="<<a<<" "<<"c="<<c<<endl;

程序的输出结果为a=l c=2.33

 

3.forward_as_tuple

用于接收右值引用数据生成tuple

auto tup = std::forward_as_tuple(1,"csdn")

上述代码创建了一个tuple<int &&, char (&)[6]>类型的元组。

可以看出,tuple中的参数全部为右值引用。而前面讨论的tie函数就只能接受左

 

 

4.tuple_cat

用于连接tuple

std::tuple<float, string> tup1(3.14, "pi");
std::tuple<int, char> tup2(10, 'a');
auto tup3 = tuple_cat(tup1, tup2);
​

 

 

tuple中对元素的操作

 

1.get < i >

获取第i个元素的值

std::tuple<float, string> tup(666, "emmmm");
cout << get<0>(tup);

输入第一个元素666.

2.tuple_element

获取tuple中特定元素数据结构

std::tuple_element<0, decltype(tup1)>::type

3.size

获取tuple中的元素个数

std::tuple<float, string> tup(666, "emmmm");
cout << tuple_size<decltype(tup1)>::value;

输出结果为2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值