std:: pair
|
定义于头文件
<utility>
|
||
|
template
<
class
T1,
|
||
std::pair
是一个类模板,提供将两个异构对象存储为单一单元的方法。pair 是包含两个元素的
std::tuple
的特例。
如果
T1
和
T2
均非可能带有 cv 限定符且具有非平凡析构函数的类类型或其数组,则
pair
的析构函数是平凡的。
目录 |
模板参数
| T1, T2 | - | pair 所存储元素的类型。 |
成员类型
| 成员类型 | 定义 |
first_type
|
T1
|
second_type
|
T2
|
成员对象
| 成员名称 | 类型 |
first
|
T1
|
second
|
T2
|
成员函数
构造新的
pair
(公开成员函数) |
|
|
赋值内容
(公开成员函数) |
|
|
(C++11)
|
交换内容
(公开成员函数) |
非成员函数
根据参数类型创建
pair
类型的对象
(函数模板) |
|
|
(C++20 中移除)
(C++20 中移除)
(C++20 中移除)
(C++20 中移除)
(C++20 中移除)
(C++20)
|
按字典序比较
pair
中的值
(函数模板) |
|
(C++11)
|
特化
std::swap
算法
(函数模板) |
|
(C++11)
|
访问
pair
的元素
(函数模板) |
辅助类
|
(C++11)
|
获取
pair
的大小
(类模板特化) |
|
(C++11)
|
获取
pair
元素的类型
(类模板特化) |
确定两个
pair
的公共引用类型
(类模板特化) |
|
|
(C++23)
|
确定两个
pair
的公共类型
(类模板特化) |
|
(C++23)
|
pair
的格式化支持
(类模板特化) |
辅助特化
|
template
<
class
T,
class
U
>
constexpr
bool
enable_nonlocking_formatter_optimization
<
std
::
pair
<
T, U
>>
=
|
(自 C++23 起) | |
此
std::enable_nonlocking_formatter_optimization
的特化使得当
T
和
U
均启用该优化时,能够高效实现
std::print
和
std::println
对
pair
对象的输出。
推导指南 (C++17 起)
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确行为 |
|---|---|---|---|
| LWG 2796 | C++98 |
pair
的析构函数的平凡性未作规定
|
已规定 |
参见
|
(C++11)
|
实现固定大小容器,可容纳可能不同类型的元素
(类模板) |
|
(C++11)
|
创建左值引用的
tuple
或将 tuple 解包为独立对象
(函数模板) |