100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++ pair使用案例(一)

C++ pair使用案例(一)

时间:2021-09-16 01:09:42

相关推荐

C++ pair使用案例(一)

在写算法中,如果不想使用结构体,但是例如BFS这样的算法会用到存储一对的情况,

我们可以考虑用pair

注意:需要头文件 map, 比utility容易记忆

使用案例

BFS 奇怪的电梯

题目选自洛谷P1135

#include<iostream>#include<stdio.h>#include<algorithm>#include<map>using namespace std;int N,A,B;int book[201];int nt[201];queue<pair<int,int> > q;bool judge(int x){if(book[x] != 1 && x > 0 && x <= N) return true;return false;}int bfs(int s){q.push(make_pair(s,0)); book[s] = 1;while(!q.empty()){int f = q.front().first;if(f == B) return q.front().second;if(judge(f+f[nt])) {q.push(make_pair(f+f[nt],q.front().second+1));book[f+f[nt]] = 1;}if(judge(f-f[nt])){q.push(make_pair(f-f[nt],q.front().second+1));book[f-f[nt]] = 1;}q.pop();}return -1;}int main(){scanf("%d%d%d",&N,&A,&B);for(int i=1;i<=N;i++)scanf("%d",&nt[i]);int ans = bfs(A);printf("%d",ans);return 0;}

可以看到,我们在使用使,只需将queue里的类型 从 结构体类型 变成 pair类型,

然后我们在使用“一对”数据时,直接make_pair() 即可。

非常之方便~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。