一、pair历史概述
C++标准库的第1版(C++98),提供了一个简单的class,用来处理类型不同的两个(一对)值,这个就是pair。到了C++11,pair被重新定义,有了很大扩展
pair与tuple:
tuple在TR1被引入,它是对pair的扩展
tuple在后面详细概述。
二、pair概述
特点:
一个pair保存两个数据,pair是一个用来生成特定类型的模板
当创建一个pair时,我们必须提供两个类型名,pair的数据成员具有对应的类型
C++标准库内部多出用到了pair:
例如容器map、multimap、unordered_map、unordered_multimap就是使用pair来管理其元素
例如任何函数如果需要返回两个value,也需要用到pair,例如minmax()函数
内部定义
pair在底层被定义为一个struct,其所有成员默认都是public的
namespace std { template <typename T1,typename T2> struct pair