c++实现的木叶忍者村管理
那是一个遥远的小山村:
目录
- 说了这么多完整的代码是:
这一天,学院的老师需要对各位小忍者的信息进行根据名字,年龄,战斗力进行录入,并有效查询出某个战斗力段的最大的那位忍者,于是他求助聪明的我hhh
首先,如果我们采用普通的数组或者vector进行增改,虽然vector在尾部进行插入时候的时间复杂度低,但是要是有那么一天
忍者村放开二胎政策
那忍者学校学生肯定刷刷Shau地涨那么它呢能要跑一天一夜(对),于是,我们用到了multimap函数;
头文件是
#include<map>
multimap和map一样,他们的数据都是pair的对象既:pair(Key,T,less(n))
其中map和mutimap的first和second分别对应Key类型和T类型,都是可以被我指定的数据类型,less()不写就是缺省的升序排序;
考虑到学院里可能存在相同战斗力或者相同名字的忍者,所以现在把刀架在我们脖子上叫我们用multimap(滑稽)//因为map不支持插入相同的Key类型的数据
考虑到pair对象里只能有Key和T类型的数据,所以我们要创建一个T类型的结构体,内包含了小忍者的名字和编号
struct cn{ //定义结构可以让pair的T类型容纳两个小忍者的信息string name;int number;};
写在类里面就是:
class Make_wood { //multimap的class中有value_type 方法public:int combat;struct cn{ //定义结构可以让pair的T类型容纳两个小忍者的信息string name;int number;};cn cc;//要先定义一个
};
定义一个multimap模板(就是可以省得写那么多):
typedef multimap<int,Make_wood::cn> Cub; //multimap允许存在Key相同的插入
先大概介绍下程序的功能,当老师输入:i(insert)时,就是对容器增加忍者的数据分别是,名字,编号,战斗力;
当老师输入s(search)时,然后老师输入战斗力,找出低于这个战斗力的最大战斗里的最大编号的忍者的信息(好绕hhh)
有必要说一下的就是,对multimap插入pair的数据的方式是:
ninja.insert(Cub::value_type(info.combat,info.cc)); //这里可以换成://make_pair(info.combat,info.cc);以为,make_pair是pair内部的方法
这里的ninja表示忍者(multimap的对象)而multimap里有value_type的方法
说了这么多完整的代码是:
#include<iostream>
#include<map>
#include<string>
using namespace std; //木叶村战力排行榜 ,战力信息,代号,姓名
class Make_wood { //multimap的class中有value_type 方法public:int combat;struct cn{ //定义结构可以让pair的T类型容纳两个小忍者的信息string name;int number;};cn cc;//要先定义一个
};typedef multimap<int,Make_wood::cn> Cub; //multimap允许存在Key相同的插入int main()
{Cub ninja;Make_wood info;string i;int comb;//要查询的战斗力while(cin>>i){if(i=="i"){cin>>info.cc.name>>info.cc.number>>info.combat;ninja.insert(Cub::value_type(info.combat,info.cc)); //这里可以换成:continue; //make_pair(info.combat,info.cc);以为,make_pair是pair内部的方法}else if(i=="s") //这里的查找是查比这个战斗力小的最大的那个的最大的学号的名字{cin>>comb;Cub::iterator it=ninja.lower_bound(comb);if(it!=ninja.begin()){--it;int com=it->first;//得到的战斗力int num=it->second.number;//当战斗力相同时候的最大编号;Cub::iterator maxit=it;for(;it!=ninja.begin()&&it->first==com;--it){if(it->second.number>num){num= it->second.number;maxit=it;}}//因为循环到it==ninja.begin()结束,所以当it和它相等时候没有进行比较//soif(it->first==com){if(it->second.number>num){maxit=it;}}cout<<"忍者名称:"<<maxit->second.name<<"忍者编号:"<<maxit->second.number<<"忍者战斗力:"<<maxit->first<<endl;}else{cout<<"没有战斗力比他小的忍者"<<endl;}continue;}}return 0;}
运行结果:
c++实现的木叶忍者村管理相关推荐
- 九宫格摆法_《合战忍者村物语》九宫格布局摆法
原标题:<合战忍者村物语>九宫格布局摆法 忍者村物语手游中九宫格布局究竟该怎么摆呢?在合战忍者村物语手游中九宫格的布局可以说是不少小伙伴们所关心的,那么接下来就来给大家介绍一下吧! 合战忍 ...
- 九宫格摆法_合战忍者村九宫格布局摆法介绍
很多人对于前期合战的布局比较迷茫 小编这里给新手推荐的就是合战忍者村布局九宫格摆法,很适合前期不知道该怎么布局的人.当然对于那种超级大神或者布局有自己思路的朋友最多只能借鉴不用完全当做指南. 至于工坊 ...
- 合战忍者村/锄战三国村布局
解释: 基本思想:住宅区,生产区,商业区,分别堆井,撞钟,烟花提升建筑加成 关键要点:注意限制工人的走位,因为他们会乱走导致效率低下 最后补充:河对岸太远了,性价比不高,用不着
- HRBUST1313-火影忍者之~静音
火影忍者之-静音 Time Limit: 1000 MS Memory Limit: 32767 K Total Submit: 353(87 users) Total Accepted: 101(7 ...
- 火影忍者忍者先锋维修服务器,《火影:忍者先锋》支持简体中文 PC配置公布
在线忍者对战动作游戏<火影忍者博人传:忍者先锋(NARUTO TO BORUTO: SHINOBI STRIKER)>Steam页面今日上线,开启了预购,并公布了PC版配置要求. < ...
- 火影忍者.木叶---我的家
一生的羁绊.一生的遗憾, 木叶留给我的难道只有这一生的无奈吗? 佐助--我一生的挚友. 你了解我活泼.开朗的外表下所遮盖的痛苦:当然我也明白你俊朗.高傲伪装下的脆弱.你那么的优秀,出生在最强一族,拥有 ...
- 忍者先锋服务器维修,忍者先锋新手入门全系统全模式图文攻略
忍者先锋新手入门全系统全模式图文攻略 2018-09-01 16:03:46来源:游戏下载编辑:野狐禅评论(0) 游戏设施 VR忍术竞技场: 「VR忍术竞技场」是集结了木叶忍者村全力打造的最先端科学设 ...
- MySQL事务及隔离级别详解
MySQL事务及隔离级别详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的基本架构 MySQL的基本架构可以分为三块,即连接池,核心功能层,存储引擎层. 1> ...
- MongoDB(芒果数据库)学习(三)——Mongoose搭建及运用(Schemas、Model、Document)
MongoDB(芒果数据库)学习(三)---Mongoose搭建以及基础 一.mongoose前言 mongoose的官方网站:https://mongoosejs.com/ 简介: 之前我们通过sh ...
最新文章
- 安卓v7支持包下的ListView替代品————RecyclerView
- Solaris ALOM1.6 SC Password Reset
- Android.bp 添加宏开关【转】
- 大学计算机用的笔记本,推荐一款大学生用笔记本电脑
- HTTP 1.1与HTTP 1.0的比较
- Linux 进程通信之FIFO
- PHP JSON数组与对象的理解
- 联邦调查局严重夸大了加密威胁数字,从而想获得对手机的访问权限
- IPD与项目管理、CMM的关系
- java10个整数反向输出_输入一个整数,实现反转输出,如输入123,输出321。
- w3cSchool jquery学习
- 选课系统类图与数据结构图
- bat 判断文件名字含有某些字段_PE文件头及其简单逆向运用
- Linux虚拟文件系统小结
- SAS Planet软件介绍与使用教程
- 如何软件项目电子投标
- 电脑扬声器耳机已拔出
- linux基础--认识文件以及vi编辑器
- 95后国风艺术家联手AI,立志耗时一年,作百米长卷《新西湖繁胜全景图》献礼杭州亚运!...
- [2015国家集训队互测]口胡
热门文章
- 砸盘、销号、解散社群,Merlin Lab“跑路三连”暴露了DeFi哪些问题?
- Mybatis sql查不到数据
- EMMC内存芯片和NAND区别
- 2021-05-26SEO关键词KPI考核指标有哪些
- python最小二乘法_最小二乘法(least sqaure method)
- 联想G40重装linux系统,联想g40-30如何重装系统_联想g40-30重装win7系统的图文教程-win7之家...
- sdkman软件开发工具包管理器
- 最简单DIY基于51单片机的舵机控制器
- 计算机一级插入页码,同一篇文档中插入相同页码的小技巧
- [Webpy]在webpy中使用jinja2模板