7-26 Windows消息队列
7-26 Windows消息队列(25 分)
消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。
输入格式:
输入首先给出正整数N(≤105),随后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!
思路:大家好好吃饭,不要撑着,也不要饿着。完了,欠的题有点儿多了?来补题了,这个题用优先队列的话很容易就能通过实例,但是在第三个测试点运行超时,然后把string改成了char[]就AC了注意用char时空间不要开太大,第三个测试点也会显示运行超时。
#include<queue> #include<stdio.h> #include<string.h> #include<stdlib.h> #include<iostream> using namespace std; typedef struct Node{char name[19];int rank;friend bool operator <(const Node &a, const Node &b){return a.rank > b.rank;} }Node; int main() {priority_queue<Node>que;int n; cin >> n;if (n <= 0)return 0;while (n--){char temp[19];//cin >> temp;scanf("%s", temp);if (strcmp(temp, "PUT") == 0){Node a;//cin >> a.name >> a.rank;scanf("%s%d", a.name, &a.rank);que.push(a);}else {if (!que.empty()){cout << que.top().name << endl;que.pop();}else cout << "EMPTY QUEUE!" << endl;}}return 0; }
转载于:https://www.cnblogs.com/zengguoqiang/p/8481303.html
7-26 Windows消息队列相关推荐
- Windows消息队列
Windows消息队列(优先队列) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果 ...
- 7-26 Windows消息队列(25 分)
7-26 Windows消息队列(25 分) 消息队列是 Windows 系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当 ...
- 5-2 Windows消息队列 (25分)
5-2 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中 ...
- Windows 消息队列
Windows 消息队列 消息队列的功能 使用消息队列的场合 1. 客户端常常从网络上断开连接 2. 客户端和服务端都在线 消息 1. 消息的类型 2. 消息优先级 3. 消息的传递模式 4. 事务消 ...
- 7-8 Windows消息队列 (25 分)
消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果队列不是空的,这一进程循环地从队列中 ...
- windows消息队列。DispatchMessage。 PostMessage
如果HWND为NULL, 表明向当前线程发送Quit消息.. 大概是为了多任务的需要,Windows接管了所有的资源,以便于进行统一处理. 其中最××的就是接管了输入,并推出了消息队列的概念. Win ...
- UI线程和Windows消息队列
在Windows应用程序中,窗体是由一种称为"UI线程(User Interface Thread)"的特殊类型的线程创建的. 首先,UI线程是一种"线程",所 ...
- 7-26 Windows消息队列 (25 分)(详解+思路+超时解决)
一:题目 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果队列不是空的,这一进程循环 ...
- windows消息队列C语言,08年计算机二级C语言辅导:vc操作微软消息队列的方法
定义 IMSMQQueuePtr qDest; // Represents Destination Queue IMSMQQueueInfoPtr qInfo; //Represents an ope ...
最新文章
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
- ThreadLocal原理及用法详解
- jeecms附件标签用法
- web.xml mysql_JSP登录验证脚本失败(mysql后端)web.xml servlet映射?
- java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
- ARM发布自动驾驶芯片架构,重新宣示车载系统市场的主权
- la3401解码板_拆解SONY ST-V702收音头 更换调频收音板+频偏调整
- SE 2014 年4月21日(二)
- 谱减法matlab程序_从零开始的matlab学习笔记——(2)基本运算
- SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
- 区块链 以太坊 智能合约 运行原理和开发实例
- logisim数据选择器_基于Logisim的CRC编码电路实现.pdf
- 航天信息上传参数设置服务器设置,金税盘上传参数怎么设置?
- 泛微e9隐藏明细表_泛微协同 泛微OA e-cology产品功能清单 模块列表
- js 校验身份证号码
- 5G时代下的室内定位方案越来越精准-室内定位方案-新导智能
- 金蝶K3开发-工业单据显示物料图片
- 超分辨率的国内外研究现状
- MySQL RANGE分区
- 【100 种语言速成】第 6 节:Tcl/Tk
热门文章
- 查看表状态及索引碎片语句
- [usaco2004][bzoj3379] 交作业
- P1266 速度限制
- Java 实现常见排序算法
- 德国留学语言c1,德国留学申请,关于语言
- dos命令查看oracle_home,Oracle - OraDb10g_home1配置方法+DOS命令
- shell编程-分支语句
- linux 升级 iphone,Linux 5.13 更新有望增加对苹果 M1 处理器的支持
- vue安装教程及简介
- 浙江丽水学院计算机专业,2019丽水学院专业排名