std::pair
来自 cppreference.cn
在头文件 <utility> 中定义 |
||
template< class T1, |
||
std::pair
是一个类模板,它提供一种方式来将两个异构对象存储为单个单元。pair 是 std::tuple 的一个特例,它有两个元素。
如果 T1
和 T2
都不是可能带有 cv 限定且具有非平凡析构函数的类类型,或其数组类型,则 pair
的析构函数是平凡的。
目录 |
[编辑] 模板参数
T1, T2 | - | pair 存储的元素的类型。 |
[编辑] 成员类型
成员类型 | 定义 |
first_type
|
T1
|
second_type
|
T2
|
[编辑] 成员对象
成员名称 (Member name) | 类型 |
first
|
T1
|
second
|
T2
|
[编辑] 成员函数
构造新的 pair (public 成员函数) | |
赋值内容 (public 成员函数) | |
(C++11) |
交换内容 (public 成员函数) |
[编辑] 非成员函数
创建类型由参数类型确定的 pair 对象(函数模板) | |
(在 C++20 中移除)(在 C++20 中移除)(在 C++20 中移除)(在 C++20 中移除)(在 C++20 中移除)(C++20 起) |
字典序比较 pair 中的值(函数模板) |
(C++11) |
特化 std::swap 算法 (函数模板) |
(C++11) |
访问 pair 的元素(函数模板) |
[编辑] 辅助类
(C++11) |
获取 pair 的大小(类模板特化) |
获取 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 起) | |
当 T
和 U
都启用时,std::enable_nonlocking_formatter_optimization 的此特化允许高效实现 std::print 和 std::println 以打印 pair
对象。
[编辑] 推导指南(C++17 起)
[编辑] 缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
LWG 2796 | C++98 | pair 析构函数的平凡性未指定 |
已指定 |
[编辑] 另请参阅
(C++11) |
实现固定大小容器,容纳可能不同类型的元素 (类模板) |
(C++11) |
创建左值引用 tuple 或将 tuple 解包为单独的对象 (函数模板) |