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

2023-12-18 09:51:05
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 提供一个推导指引,以涵盖隐式推导指引所遗漏的极端情况。

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

文章来源:https://blog.csdn.net/qq_40788199/article/details/135005504
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。