輸入首先給出正整數n(≤1
05
),隨後n行,每行給出乙個指令——get
或put
,分別表示從佇列中取出訊息或將訊息新增到佇列中。如果指令是put
,後面就有乙個訊息名稱、以及乙個正整數表示訊息的優先順序,此數越小表示優先順序越高。訊息名稱是長度不超過10個字元且不含空格的字串;題目保證佇列中訊息的優先順序無重複,且輸入至少有乙個get
。
對於每個get
指令,在一行中輸出訊息佇列中優先順序最高的訊息的名稱和引數。如果訊息佇列中沒有訊息,輸出empty queue!
。對於put
指令則沒有輸出。
9
put msg1 5
put msg2 4
getput msg3 2
put msg4 4
getget
getget
msg2
msg3
msg4
msg1
empty queue!
最小堆應該是正解,恰好優先佇列的內部排序是用堆實現的,所以,***。。。
還有,這個題要用scanf,不然第三個點超時
#include#include#includeusing namespace std;
struct me
}m;int main()
else
else}}
return 0;
}
windows訊息佇列
windows訊息佇列 windows中 佇列訊息和非佇列訊息。訊息佇列由可以分成系統訊息佇列和執行緒訊息佇列。系統訊息佇列由windows維護,執行緒訊息佇列則由每個gui執行緒自己進行維護,僅當執行緒第一次呼叫gdi函式時系統才給執行緒建立乙個訊息佇列,佇列訊息送到系統訊息佇列,然後到執行緒訊息...
windows佇列訊息和非佇列訊息的詳細解釋
我們已經談到過,windows給視窗傳送訊息,這意味著windows呼叫視窗訊息處理程式。但是,windows程式也有乙個訊息迴圈,它呼叫getmessage從訊息佇列中取出訊息,並且呼叫dispatchmessage將訊息傳送給視窗訊息處理程式。那麼,windows程式是依次等待訊息 類似於普通程...
Windows的訊息佇列和訊息迴圈
一 windows中有乙個系統訊息佇列,對於每乙個正在執行的windows應用程式,系統為其建立乙個 訊息佇列 即應用程式佇列,用來存放該程式可能建立的各種視窗的訊息。應用程式中含有一段稱作 訊息迴圈 的 用來從訊息佇列中檢索這些訊息並把它們分發到相應的視窗函式中。二 windows為當前執行的每個...