C++11 std::tuple

C++中有 std::pair,C++11增加了std::tuple,是对std::pair的泛化。

一 简介

1 头文件<tuple>

2 声明

template<class ... Types> class tuple;

二 tuple定义及初始化的几种方式

1 模板实例化

这个对使用tuple来说是比较笨重的方法,不展开。

2 使用std::make_tuple

auto t = std::make_tuple(1, "jack", 89.5);

3 使用std::tie

int num;
std::string name;
double score;
......
auto t1 = std::tie(num, name, score);

4 使用std::tuple_cat

std::tuple<int, std::string, float> t1(10, "Test", 3.14);
int n = 7;
auto t2 = std::tuple_cat(t1, std::make_pair("Foo", "bar"), t1, std::tie(n));

t2的值:(10, Test, 3.14, Foo, bar, 10, Test, 3.14, 7)

三 tuple元素访问的两种方式

1 跟std::pair一样,使用std::get进行访问

cout << " std::get<0>(t)  " << std::get<0>(t) << std::endl;
cout << " std::get<1>(t)  " << std::get<1>(t) << std::endl;
cout << " std::get<2>(t)  " << std::get<2>(t) << std::endl;

2 使用std::tie进行访问

int num;
std::string name;
double score;
std::tie(num, name, score) = t;
cout << "num: " << num << std::endl;
cout << "name:  " << name << std::endl;
cout << "score: " << score << std::endl;

四 参考

std::tuple

std::tuple_cat

五 延伸

std::forward_as_tuple

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值