c++11 标准模板(STL)(std::pair)(一)

std::pair

定义于头文件 <utility>

template<

    class T1,
    class T2

> struct pair;

std::pair 是一个结构体模板,其可于一个单元存储两个相异对象。 pair 是 std::tuple 的拥有两个元素的特殊情况。

若 std::is_trivially_destructible_v<T1> && std::is_trivially_destructible_v<T2> 为 true ,则 pair 的析构函数为平凡。

(C++17 起)

模板形参

T1, T2-pair 所存储的元素类型。

成员类型

成员类型定义
first_typeT1
second_typeT2

成员对象

成员名类型
firstT1
secondT2

成员函数

(构造函数)

构造新的 pair
(公开成员函数)

operator=

对 内容赋值
(公开成员函数)

swap

(C++11)

交换内容
(公开成员函数)

非成员函数

make_pair

创建一个 pair 对象,其类型根据各实参类型定义
(函数模板)

operator==operator!=operator<operator<=operator>operator>=

按字典序比较 pair 中的值
(函数模板)

std::swap(std::pair)

(C++11)

特化 std::swap 算法
(函数模板)

std::get(std::pair)

(C++11)

访问 pair 的一个元素
(函数模板)

辅助类

std::tuple_size<std::pair>

(C++11)

获得pair的大小
(类模板特化)

std::tuple_element<std::pair>

(C++11)

获得pair中元素的类型
(类模板特化)

推导指引(C++17 起)

参阅

tuple

(C++11)

实现固定大小的容器,它保有类型可以相异的元素
(类模板)

tie

创建左值引用的 tuple,或将 tuple 解包为独立对象
(函数模板)

std::pair 的推导指引 

template<class T1, class T2>
pair(T1, T2) -> pair<T1, T2>;

(C++17 起)

为 std::pair 提供一个推导指引,以涵盖隐式推导指引所遗漏的极端情况。

特别是不可复制参数及数组到指针转换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值