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...