命名空间
变体
操作

std::pair

来自 cppreference.cn
< cpp‎ | 工具
 
 
 
 
在头文件 <utility> 中定义
template<

    class T1,
    class T2

> struct pair;

std::pair 是一个类模板,它提供一种方式来将两个异构对象存储为单个单元。pair 是 std::tuple 的一个特例,它有两个元素。

如果 T1T2 都不是可能带有 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 中的值
(函数模板) [编辑]
特化 std::swap 算法
(函数模板) [编辑]
访问 pair 的元素
(函数模板) [编辑]

[编辑] 辅助类

获取 pair 的大小
(类模板特化) [编辑]
获取 pair 元素的类型
(类模板特化) [编辑]
确定两个 pair 的公共引用类型
(类模板特化) [编辑]
确定两个 pair 的公共类型
(类模板特化) [编辑]
pair 的格式化支持
(类模板特化) [编辑]

[编辑] 辅助特化

template< class T, class U >

constexpr bool enable_nonlocking_formatter_optimization<std::pair<T, U>> =
    enable_nonlocking_formatter_optimization<T> &&

    enable_nonlocking_formatter_optimization<U>;
(C++23 起)

TU 都启用时,std::enable_nonlocking_formatter_optimization 的此特化允许高效实现 std::printstd::println 以打印 pair 对象。

[编辑] 推导指南(C++17 起)

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 2796 C++98 pair 析构函数的平凡性未指定 已指定

[编辑] 另请参阅

(C++11)
实现固定大小容器,容纳可能不同类型的元素
(类模板) [编辑]
(C++11)
创建左值引用 tuple 或将 tuple 解包为单独的对象
(函数模板) [编辑]