7-26 Windows消息队列(25 分)

消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。

输入格式:

输入首先给出正整数N(≤10​5​​),随后N行,每行给出一个指令——GETPUT,分别表示从队列中取出消息或将消息添加到队列中。如果指令是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消息队列相关推荐

  1. Windows消息队列

    Windows消息队列(优先队列) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果 ...

  2. 7-26 Windows消息队列(25 分)

    7-26 Windows消息队列(25 分) 消息队列是 Windows 系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当 ...

  3. 5-2 Windows消息队列 (25分)

    5-2 Windows消息队列   (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中 ...

  4. Windows 消息队列

    Windows 消息队列 消息队列的功能 使用消息队列的场合 1. 客户端常常从网络上断开连接 2. 客户端和服务端都在线 消息 1. 消息的类型 2. 消息优先级 3. 消息的传递模式 4. 事务消 ...

  5. 7-8 Windows消息队列 (25 分)

    消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果队列不是空的,这一进程循环地从队列中 ...

  6. windows消息队列。DispatchMessage。 PostMessage

    如果HWND为NULL, 表明向当前线程发送Quit消息.. 大概是为了多任务的需要,Windows接管了所有的资源,以便于进行统一处理. 其中最××的就是接管了输入,并推出了消息队列的概念. Win ...

  7. UI线程和Windows消息队列

    在Windows应用程序中,窗体是由一种称为"UI线程(User Interface Thread)"的特殊类型的线程创建的. 首先,UI线程是一种"线程",所 ...

  8. 7-26 Windows消息队列 (25 分)(详解+思路+超时解决)

    一:题目 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中.同时,如果队列不是空的,这一进程循环 ...

  9. windows消息队列C语言,08年计算机二级C语言辅导:vc操作微软消息队列的方法

    定义 IMSMQQueuePtr qDest; // Represents Destination Queue IMSMQQueueInfoPtr qInfo; //Represents an ope ...

最新文章

  1. Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
  2. ThreadLocal原理及用法详解
  3. jeecms附件标签用法
  4. web.xml mysql_JSP登录验证脚本失败(mysql后端)web.xml servlet映射?
  5. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  6. ARM发布自动驾驶芯片架构,重新宣示车载系统市场的主权
  7. la3401解码板_拆解SONY ST-V702收音头 更换调频收音板+频偏调整
  8. SE 2014 年4月21日(二)
  9. 谱减法matlab程序_从零开始的matlab学习笔记——(2)基本运算
  10. SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
  11. 区块链 以太坊 智能合约 运行原理和开发实例
  12. logisim数据选择器_基于Logisim的CRC编码电路实现.pdf
  13. 航天信息上传参数设置服务器设置,金税盘上传参数怎么设置?
  14. 泛微e9隐藏明细表_泛微协同 泛微OA e-cology产品功能清单 模块列表
  15. js 校验身份证号码
  16. 5G时代下的室内定位方案越来越精准-室内定位方案-新导智能
  17. 金蝶K3开发-工业单据显示物料图片
  18. 超分辨率的国内外研究现状
  19. MySQL RANGE分区
  20. 【100 种语言速成】第 6 节:Tcl/Tk

热门文章

  1. 查看表状态及索引碎片语句
  2. [usaco2004][bzoj3379] 交作业
  3. P1266 速度限制
  4. Java 实现常见排序算法
  5. 德国留学语言c1,德国留学申请,关于语言
  6. dos命令查看oracle_home,Oracle - OraDb10g_home1配置方法+DOS命令
  7. shell编程-分支语句
  8. linux 升级 iphone,Linux 5.13 更新有望增加对苹果 M1 处理器的支持
  9. vue安装教程及简介
  10. 浙江丽水学院计算机专业,2019丽水学院专业排名