在写算法中,如果不想使用结构体,但是例如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() 即可。

非常之方便~~

C++ pair使用案例(一)相关推荐

  1. 零入门kubernetes网络实战-14->基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信测试案例

    <零入门kubernetes网络实战>视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章继续提供测试 ...

  2. 第三十天-ssh key企业批量分发自动化管理案例

    本文实现一个应用ssh key 批量分发案例 目录 一.ssh key 原理及案例原理简图 1.ssh key 简介 2.rsa和dsa区别 3.ssh-copy-id的特殊应用 4.ssh-copy ...

  3. Redis简单案例(二) 网站最近的访问用户

    原文:Redis简单案例(二) 网站最近的访问用户 我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我 ...

  4. 结合业务场景案例实践分析,倾囊相授美团BERT的探索经验

    Google 在 2018 年公布 BERT 的工作之后,引起了 NLP 学术圈以及工业界的极大关注.无论是在各个公司的应用场景中,还是在一些公开的 Benchmark 上,BERT 的效果都得到了验 ...

  5. Spark rdd 介绍,和案例介绍

    1.2.创建RDD 1)由一个已经存在的Scala集合创建. val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8)) 2)由外部存储系统的数据集创建,包括本 ...

  6. Spark transformation算子案例

    Spark支持两种RDD操作:transformation和action  在本文中,将对几个常用的transformation算子进行案例演示,采用Java和Scala两种语言对代码进行编写  其中 ...

  7. 数据科学与大数据技术的案例_作为数据科学家解决问题的案例研究

    数据科学与大数据技术的案例 There are two myths about how data scientists solve problems: one is that the problem ...

  8. java判断对称素数_SM2非对称算法的原理及实现 Java SM2的代码案例 | 一生孤注掷温柔 | 小奋斗...

    SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同 ...

  9. python常用语法和示例_C语言切换案例教程,语法,示例和规则

    python常用语法和示例 使用默认情况下的决策 (Decision making using switch-case-default) Many times in our daily lives, ...

最新文章

  1. python subprocess_python subprocess - 刘江的python教程
  2. tableau必知必会之教你做品牌树的树梢(分类桑基图补丁)
  3. SAP CRM Division customizing
  4. javascript放在head和body的区别(w3c建议放在head标签中)
  5. LeetCode 851. 喧闹和富有(拓扑排序)
  6. c语言宏定义比较三个数大小,C语言中两个宏进行大小对比,其中一个没有定义,这种行为如何定义。...
  7. 语义信息增强的激光雷达SLAM
  8. 利用互斥对象实现线程同步的实例说明
  9. SQL——正则表达式
  10. Android11 WAPI证书安装流程
  11. 移动吉比特H2-2光猫超级用户与密码
  12. 春节要闻回顾 | 数字人民币和元宇宙被搬上春晚;美国财政部报告警告NFT可用于洗钱...
  13. 红米K30、K40所有版本获取root教程,理论上支持所有小米手机(超级详细,附带原理解释)
  14. pyhton 将ASCII码转换为字符char(),将字符转换为ASCII码ord()
  15. PLC常用标志位信号时序编程注意事项
  16. 从零搭建vue-ssr详细介绍
  17. Spark SQL_JZZ158_MBY
  18. linux 查找替换
  19. Short-term load forecasting with an improved dynamic decomposition-reconstruction-ensemble approach
  20. Exchange2016 Skype for business 集成之一配置合作伙伴应用程序

热门文章

  1. XP下卸载IE8还原到IE7的解决方法
  2. php软件开发--mongodb
  3. python多线程教程_Python多线程编程教程【2小时学会】
  4. 超图软件打开倾斜摄影数据注意点
  5. DemocracyOS促进双方的公民参与
  6. (14)Node.js 核心模块—http
  7. 小小在线教授何为BTC跳矿(教授如何在线扩大收益)
  8. Java面试之Java基础知识第一季
  9. SVG可伸缩的矢量图形
  10. 类和模块 类和原型 工厂方法 构造函数 constructor