c++map自动排序特性_c++ map会自动排序吗
c++中的map会自动根据first值排序,这样排好序后输出第一个用begin,输出最后一个用rbegin
first支持int和string类型的排序,其原理应该是ascii(这一点我没有考证,反正也不太重要)
举个栗子
题目描述
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。
输入描述:
每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为
证件号码 签到时间 签离时间
其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。
输出描述:
对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。
注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况。
示例1
输入
复制
3
CS301111 15:30:28 17:00:10
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40
输出
复制
SC3021234 CS301133
题目来源:https://www.nowcoder.com/practice/a4b37b53a44d454ab0834e1517983215?tpId=40
本来还以为需要暴力分解字符串,后来一想,不用啊,map自动解决了
#include<iostream>
#include<cstdio>
#include<queue>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<map>
#include <sstream>
using namespace std;
map<string,string>open;
map<string,string>close;
int main(){
int num;
while(cin>>num){
open.clear();
close.clear();
string id,st,et;
for(int i=0;i<num;i++){
cin>>id>>st>>et;
open.insert(pair<string,string>(st,id));
close.insert(pair<string,string>(et,id));
}
cout<<open.begin()->second<<" ";
cout<<close.rbegin()->second<<endl;
}
}
但是会这一种有点少,万一如果下一次开门的时候需要凑齐两个人呢?
就是说需要输出第一个和第二个
所以有必要学一下map迭代器
map<string,string>::iterator it;
for(it=open.begin();it!=open.end();it++){
cout<<it->second<<endl;
}
for(it=close.begin();it!=close.end();it++){
cout<<it->second<<endl;
}
迭代器是以类别区分的,也就是代码中的it可以迭代first和second类型都是string的map
如果要迭代<int,string>的map,就需要重新声明一个迭代器了
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具

👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)

👉五、Python练习题
检查学习结果。

👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)