c++ stl pair

c++中的pair其实也并没什么软用,

但出于对知识的热爱,就在此瞎比比了,

c++ 文化博大精深,千奇百怪,无奇不有,

于是就有了pair这玩意,

pair的定义:

 

pair<string,int> p;

pair<int ,int > p;

pair<double,int> p;

。。。

由于pair定义太繁琐于是乎,

typedef pair<int,int> pr;

加上这玩意定义就可变成,

pr +名字

是不是很神奇,

其实pair完全可以写个node定义,

且pair的排序是先按fist在按second。

p.first  p.second

附上pair的代码,

 

 
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 #define LL long long
 7 #define rep(i,a,b) for (int i=a;i<=b;i++)
 8 #define per(i,a,b) for (int i=a;i>=b;i--)
 9 #define inf 1<<29
10 #define clr(i,c) memset(i,c,sizeof(i))
11 using namespace std;
12 inline int read(){
13     int x=0,f=1; char ch=getchar();
14     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
15     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} 
16     return x*f; 
17 }
18 pair<int,int>a[1000];
19 int n;
20 int main()
21 {
22    n=read();
23    rep(i,1,n) a[i].first=read(),a[i].second=i;
24    a[1]=make_pair(1,1);
25    sort(a+1,a+n+1);
26    rep(i,1,n)printf("%d %d\n",a[i].first,a[i].second);
27 }
View Code

 

 

 




posted @ 2016-09-08 21:48  SXia  阅读(183)  评论(0编辑  收藏  举报