一、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