7-26 Windows消息队列 (25 分)(详解+思路+超时解决)
一:题目
消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。
输入格式:
输入首先给出正整数N(≤10
5
),随后N行,每行给出一个指令——GET或PUT,分别表示从队列中取出消息或将消息添加到队列中。如果指令是PUT,后面就有一个消息名称、以及一个正整数表示消息的优先级,此数越小表示优先级越高。消息名称是长度不超过10个字符且不含空格的字符串;题目保证队列中消息的优先级无重复,且输入至少有一个GET。
输出格式:
对于每个GET指令,在一行中输出消息队列中优先级最高的消息的名称和参数。如果消息队列中没有消息,输出EMPTY QUEUE!。对于PUT指令则没有输出。
输入样例:
9
PUT msg1 5
PUT msg2 4
GET
PUT msg3 2
PUT msg4 4
GET
GET
GET
GET
输出样例:
msg2
msg3
msg4
msg1
EMPTY QUEUE!
二:思路
用到了map 容器 ,那就简单了,map有自动排序功能,这样的话每次遇到GET 就将 第一个输出来,同时将第一个删除。
如果map容器不熟练请看链接:
https://blog.csdn.net/qq_48508278/article/details/118531197
三:上码
#include<bits/stdc++.h>
using namespace std;int main()
{map<int,string>m;map<int,string>:: iterator t;//迭代器的使用 用于遍历int N;cin >> N;for( int i = 0; i < N; i++ ){string str;cin >> str;if( str == "PUT"){string str1;int num;cin >> str1 >> num;m[num] = str1;}if( str == "GET"){if( t != m.end() && !m.empty()){t = m.begin();//指向map容器当中第一对元素cout << t->second << endl;t = m.find(t->first);m.erase(t);}else if(m.empty()){cout << "EMPTY QUEUE!" << endl;}}}}
三:超时问题
以往做题经验:
1:多提交几次,卡时间,有可能会卡过去;
2:将 cout 输出改为 printf输出
3: 将 cin 输入改为 sacnf输入
补充:如果还不行 那说明得回炉重造了, 本题是多提交几次卡过去了。
加油陌生人
7-26 Windows消息队列 (25 分)(详解+思路+超时解决)相关推荐
- 5-2 Windows消息队列 (25分)
5-2 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中 ...
- 7-8 Windows消息队列 (25 分)
消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果队列不是空的,这一进程循环地从队列中 ...
- 7-22 堆栈模拟队列 (25 分)(详解夹思路)
一:题目 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或 ...
- 7-41 PAT排名汇总 (25 分)(详解+思路+重写sort函数)兄弟们冲呀呀呀呀呀呀呀
一:题目 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序 ...
- 7-40 奥运排行榜 (25 分)(详解+思路+map+vector做法)兄弟们冲压呀呀呀呀呀呀呀
一:题目 每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同.比如中国金牌总数列第一的时候,中国媒体就公布"金牌榜":而美国的奖牌总数第一,于是美国 ...
- L2-1 简单计算器 (25 分)详解c语言 模拟堆栈
L2-1 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1存放数字,另一个堆栈 S2 存放运算符.计算 ...
- 7-24 树种统计 (25 分)(详解)map做法 map真香啊!
一:题目 7-24 树种统计 (25 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出 ...
- 7-4 小字辈 (25 分) 详解
7-4 小字辈 (25 分) 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) -- 简单起见,我们把家族成员从 ...
- 7-6 列出连通集 (25 分)(详解)
列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...
最新文章
- 题目1164:旋转矩阵
- MOSS2010 标准版与企业版的区别
- 收购Roambi,SAP欲领导商务分析云迁移全球市场
- 你竟然没用 Nuget 构建项目?
- linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
- XML 与动态添加控件
- WebDAV被启用(转)
- 宝藏女孩程序媛,谈谈职场成长这些事
- 电视视频直播在线播放网站PHP源码V1.2
- 【FPGA频率计】基于FPGA的高精度数字频率计的详细设计
- python大数据方向_大数据行业5个职位方向指南
- 用HTML+CSS做一个漂亮简单的个人网页——樱木花道篮球3个页面 学生个人网页设计作品 学生个人网页模板 简单个人主页
- 关于人工智能的一些幻想
- iOS 支持3DTouch快捷菜单
- 修改计算机配置参数,男子买二手电脑重装系统后才知参数被修改
- 双阈值检测阈值选择_通过阈值进行计算机视觉高级车道检测
- 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法
- 扫盲贴-汽车上坡辅助HAC和自动驻车Auto Hold秒懂
- 【运维项目】零基础小白也能学会的运维项目
- Paypal绑定WISE美元账户提现实测