C++ Tuple(不定数的值组)

本文介绍了C++中的Tuple概念,它扩展了Pair,允许存储任意数量和类型的元素。讨论了tuple的创建、便捷函数make_tuple()和tie()的使用,以及如何通过tie()方便地读取和赋值。此外,还提到了其他特性和辅助函数,如tuple_size和获取特定元素类型的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tuple扩展了pair的概念,拥有任意数量的元素,其中每个类型都可以被指定,或来自编译期推导

tuple的操作

make_tuple()

创建一个tuple.

get<>()访问tuple元素

示例:

在这里插入图片描述

便捷函数make_tuple()和tie()

make_tuple()会根据value建立tuple,不需要明确指出元素的类型:

make_tuple(22,44,"nico");

如果你打算改动tuple内的一个既有值,可以使用ref:

std::string s;
auto x = std::make_tuple(ref(s));
std::get<0>(x) = "my value";

在这里插入图片描述
在这里插入图片描述
如果想最方便地在tuple中使用reference,可选择tie(),它可以建立一个内含reference的tuple:

std::tuple<int,float,std::string>t(77,1.1,"more light");
int i;
float f;
std::string s;
std::tie(i,f,s) = t;

在这里插入图片描述
这样i,f,s都被赋值为t中对应的值
使用tie()时,可以使用std::ignore允许我们忽略tuple的某些元素:
在这里插入图片描述
ignore是一个函数,返回一个ignore结构
在这里插入图片描述
这个结构忽略赋值

其他tuple特性

有些辅助函数特别为tuple设计:
如下:
tuple_size::value返回元素个数
在这里插入图片描述
tuple_element::type<index,tupletype>获取第index个元素的类型
在这里插入图片描述
tuple_cat串接所有形式的tuple,甚至包括pair<>在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值