Pair和Tuple

本文介绍了C++中的Pair和Tuple。Pair作为键值对在容器如map中常见,提供了first和second访问成员。Tuple则是一个可变模板类,用于存储任意数量类型的值,通过get<>()函数获取值。C++11引入的tuple支持了更多的操作,如通过make_tuple初始化,用tie()创建引用的tuple等。

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

一、Pair 类

pair类定义在<utility>中,定义如下:

template<class _Ty1,
class _Ty2>
struct pair
{ // store a pair of values
typedef pair<_Ty1, _Ty2> _Myt;
typedef _Ty1 first_type;
typedef _Ty2 second_type;

        ......

_Ty1 first; // the first stored value
_Ty2 second; // the second stored value

        ......

        }

pair是一个类模板,定义为struct,因此内部成员都为public。

pair可以将两个value视为一个单元,C++中多处用到了pair类型。如容器:map、multimap、unorder_map、unorder_multimap都是以pair来管理其key/value形式的元素。


pair支持拷贝构造、移动构造(支持隐式转换),重载了赋值运算符及比较操作符。

p.first与get<0>(p)返回pair的第一个成员;p.second与get<1>(p)返回pair的第二个成员。注意:get()为C++11用法,需要使用支持C++11的编译器。

函数make_pair可以返回一个pair对象。

另外提供了一个p.swap(q)的成员函数和swap(p,q)的全局函数用于交换两个pair的值。

二、Tuple 类

tuple是一个可变模板类,用于存储任意数量类型的实参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值