<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          7-26 Windows消息隊列 (25分)(優(yōu)先隊列)

          共 1121字,需瀏覽 3分鐘

           ·

          2022-11-18 15:32

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


          消息隊列是Windows系統(tǒng)的基礎(chǔ)。對于每個進程,系統(tǒng)維護一個消息隊列。如果在進程中有特定事件發(fā)生,如點擊鼠標、文字改變等,系統(tǒng)將把這個消息加到隊列當中。同時,如果隊列不是空的,這一進程循環(huán)地從隊列中按照優(yōu)先級獲取消息。請注意優(yōu)先級值低意味著優(yōu)先級高。請編輯程序模擬消息隊列,將消息加到隊列中以及從隊列中獲取消息。

          輸入格式:

          輸入首先給出正整數(shù)N(),隨后N行,每行給出一個指令——GETPUT,分別表示從隊列中取出消息或?qū)⑾⑻砑拥疥犃兄小H绻噶钍?code style=" box-sizing: border-box;font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size: 12px;color: rgb(231, 76, 60);word-break: break-word ; ; ; ; ; ; ; ; ; ">PUT,后面就有一個消息名稱、以及一個正整數(shù)表示消息的優(yōu)先級,此數(shù)越小表示優(yōu)先級越高。消息名稱是長度不超過10個字符且不含空格的字符串;題目保證隊列中消息的優(yōu)先級無重復,且輸入至少有一個GET

          輸出格式:

          對于每個GET指令,在一行中輸出消息隊列中優(yōu)先級最高的消息的名稱和參數(shù)。如果消息隊列中沒有消息,輸出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!



          代碼:

          #include<stdio.h>
          #include<queue>
          #include<vector>
          using namespace std;
          struct node
          {
          char s[15];
          int rank;
          friend bool operator < (node a,node b )
          {
          return a.rank>b.rank;
          }
          };
          priority_queue<node>q;
          int main()
          {
          int n,i;
          char s[5],message[15];
          node temp;
          scanf("%d",&n);
          getchar();
          for(i=0;i<n;i++)
          {
          scanf("%s",&temp.s);
          if(temp.s[0]=='G')
          {
          if(q.size()==0)
          printf("EMPTY QUEUE!\n");
          else
          {
          node a=q.top();
          q.pop();
          printf("%s\n",a.s);
          }
          }
          else
          {
          scanf("%s %d",temp.s,&temp.rank);
          q.push(temp);
          }
          }
          }


          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人人操操| 国产成人麻豆精品午夜在线 | 欧美二级在线 | 91丨九色丨 黑色JK在线 91无码人妻精品1国产四虎 | 久久黄色|