生活随笔
收集整理的這篇文章主要介紹了
c++ 中pair类模板的用法详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
pair:
頭文件:#include<utility>
類模板:template <class T1, class T2> struct pair
參數(shù):T1是第一個值的數(shù)據(jù)類型,T2是第二個值的數(shù)據(jù)類型。
功能:pair將一對值組合成一個值,這一對值可以具有不同的數(shù)據(jù)類型(T1和T2),兩個值可以分別用pair的兩個公有函數(shù)first和second訪問。
具體用法:
1.實例化:
[cpp] view plaincopy print?
pair<string,string>?p1("hello","word");???pair<double,int>????p2(1.0,1);??pair<double,int>????p3(p2);???
pair<string,string> p1("hello","word"); //調(diào)用default constructorpair<double,int> p2(1.0,1);//調(diào)用constructorpair<double,int> p3(p2); //調(diào)用 copy
2.對象的賦值以及make_pair()的應(yīng)用:
[cpp] view plaincopy print?
pair<string,string>?p1;??pair<string,string>?p2("good","good");??p1=?p2;??p1=?make_pair("hello","word");??p1?=?pair<string,string>("nice","nice");??
pair<string,string> p1;pair<string,string> p2("good","good");p1= p2;p1= make_pair("hello","word");p1 = pair<string,string>("nice","nice");
3.pair中元素的訪問(first & second):
[cpp] view plaincopy print?
pair<double,int>????p1(1.0,2);??pair<string,string>?p2("hello","word");??int?i?=?p1.second;????double?d?=?p1.first;???string?s1?=?p2.first;???string?s2?=?p2.second;???
pair<double,int> p1(1.0,2);pair<string,string> p2("hello","word");int i = p1.second; // i = 2double d = p1.first; // d = 1.0string s1 = p2.first; // s1 = hellostring s2 = p2.second; // word
4.pair數(shù)組與元素排序:
[cpp] view plaincopy print?
#include<iostream>??#include<cstdio>??#include<algorithm>??using?namespace?std;??pair<int,int>pa[100];??int?cmp(pair<int,int>a,pair<int,int>b){??????if(a.first!=b.first)return?a.first>b.first;??????else?return?a.second<b.second;??}??int?main(){??????int?a,b;??????for(int?i=0;i<5;i++)scanf("%d%d",&a,&b),pa[i]=make_pair(a,b);??????sort(pa,pa+5,cmp);??????for(int?i=0;i<5;i++)printf("%d?%d\n",pa[i].first,pa[i].second);??????return?0;??}??
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
pair<int,int>pa[100];
int cmp(pair<int,int>a,pair<int,int>b){if(a.first!=b.first)return a.first>b.first;else return a.second<b.second;
}
int main(){int a,b;for(int i=0;i<5;i++)scanf("%d%d",&a,&b),pa[i]=make_pair(a,b);sort(pa,pa+5,cmp);for(int i=0;i<5;i++)printf("%d %d\n",pa[i].first,pa[i].second);return 0;
}
總結(jié)
以上是生活随笔為你收集整理的c++ 中pair类模板的用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。