命名空间
变体
操作

std::pair

来自 cppreference.com
< cpp‎ | utility
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三元比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
pair
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
在头文件中定义 <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

[编辑] 成员对象

成员名称 类型
first T1
second T2

[编辑] 成员函数

构造新的 pair
(公有成员函数) [编辑]
分配内容
(公有成员函数) [编辑]
(C++11)
交换内容
(公有成员函数) [编辑]

[编辑] 非成员函数

创建类型为 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 起)

std::enable_nonlocking_formatter_optimization的特殊化允许高效地实现std::printstd::println来打印pair对象,前提是TU都启用了该特殊化。

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

[编辑] 缺陷报告

以下行为变更缺陷报告已追溯应用于先前发布的 C++ 标准。

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

[编辑] 另请参阅

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