2014-04-23 83 views
0

我有這個隊列下面是FIFO。基於變量重新排列Fifo隊列

隊列打印機[1];

我有以下信息存儲在隊列的每個前端。

int PID; 
string Filename; 
int Memstart; 
char rw; 
int Filelength; 
int Cylinder; 

如果我加入到這個隊列中它只是彈出它在每一個時間和不會是有序的。

是否存在破解或基於圓柱體重新排列此隊列的方法?

我想要它,這樣的隊列是基於圓柱體的順序。

因此,舉例來說,如果我添加到隊列

缸1 3 6 3的順序,它會出來的順序1 3 3 6

有沒有辦法重新安排一個FIFO基於某個變量的隊列?

謝謝!

+0

而不僅僅是打印,我想重新排列這個隊列。也許有辦法將它打印到數組中?這將如何工作? – user3398034

回答

0

好FIFO隊列被定義先入先出,所以這不會給你想要的東西,你可能想看看像一個優先級隊列(也稱爲最小堆)

http://en.wikipedia.org/wiki/Heap_(data_structure)

+0

你可以根據班級中的變量來安排它嗎? – user3398034

+0

是的,你可以定義什麼是你想用於訂單的'鑰匙'。看看這個http://stackoverflow.com/questions/2786398/is-there-an-easy-way-to-make-a-min-heap-in-c – Jaime

+0

有沒有辦法模仿創建這樣的多個隊列但優先隊列? 這是我有,但我想現在使用優先級隊列。 '隊列 Disks [DiskDevices];' 我試過這個,但它不起作用。 'priority_queue DisksTest [DiskDevices];' 它不會編譯?我究竟做錯了什麼? – user3398034