STL詳解(八) 對組容器pair

2021-09-10 13:51:35 字數 1642 閱讀 3662

pair是stl中的模板型別,它可以儲存兩個元素,它也被稱作「對組」。沒有什麼成員函式,源**很簡單。

pair 是「

二元結構體

」的替代品,將兩個元素**在一起,節

省編碼時間。相當於以下定義:

struct pair

pair將一對值組合成乙個值,就是乙個結構體,但是比結構體更加得靈活,這一對值可以具有不同的資料型別(t1和t2),兩個值可以分別用pair的兩個公有函式first和second訪問。

pair是將2個資料組合成乙個資料,當需要這樣的需求時就可以使用pair,如stl中的map就是將key和value放在一起來儲存(說簡單點就是對映)。另乙個應用是,當乙個函式需要返回2個資料的時候,可以選擇pair。 簡而言之pair就是結構體,主要的兩個成員變數是first second,可以直接使用pair的成員變數。

pairp1; //使用預設建構函式

pairp2(1, 2.4); //用給定值初始化

pairp3(p2); //拷貝建構函式

對於pair類,由於它只有兩個元素,分別名為first和second,因此直接使用普通的點操作符即可訪問其成員

paira("lily", "poly"); 

string name;

name = pair.second;

/*a.first 返回lily

a.second 返回 poly*/

#include using namespace std;  

typedef struct pairpair_if;  

int main()  

生成新的pair物件,可以使用對已存在的兩個資料構造乙個新的pair型別

int a = 8;

string m = "james";

pairnewone;

newone = make_pair(a, m);

#include using namespace std;

pairp;

int main()

}

#include using namespace std;

typedef pairau; //利用typedef簡化其宣告

int main()

{ int flag;

string x1,x2;

pairp1("a","bc"); //建立乙個pair物件,它的兩個元素分別為string和string型別,其中first成員初始化為「a」,而second成員初始化為「ab」

au p2("a","aa");

au p3;

string name;

name=p1.second; //返回1中名為second的資料成員

coutcout<>x1>>x2)

{ p3=make_pair(x1,x2); //生成乙個新的pair物件

cout<利用vector儲存piar型別,並通過sort對各pair型別資料的begin()排序,

最後借助迭代器輸出pair型別資料的second().

stl中pair容器的用法

有時候,要用pair的時候就會忘記了,又得重新翻資料,所以在blog中總結一下 簡而言之pair就是乙個結構體,但是比結構體更加得靈活 template struct pair 模板,t1,t2,可以是不同的型別 建構函式 includeusing namespace std include inc...

C 程式設計 pair(對組)

pair 是 一種模版型別。每個pair 可以儲存兩個值。這兩種值無限制,可以是tuple,vector string,struct等等。首先來看一下pair的函式 default 1 constexpr pair copy move 2 templatepair const pair pr tem...

C 程式設計 pair(對組)

pair 是 一種模版型別。每乙個pair 能夠儲存兩個值。這兩種值無限制,能夠是tuple。vector string,struct等等。首先來看一下pair的函式 default 1 constexpr pair copy move 2 templatepair const pair pr te...