2011-03-20 131 views
0

我试图实现一个队列。使用堆队列实现

这是我的框架

class Queue { 
HANDLE heap;  
Int *buf;  
Int head, tail; 
Int spaceAllocated; 
Int sizeQ;  
public: 
void Push (Int item);  
Int Pop (Int *array, int batchSize); 
} 

我使用Windows API堆这样做。 缓冲区的用途是什么?它是如何使用的?我知道这与堆和记忆有关。

+0

考虑一下:你会在哪里存储Push'ed到队列中的对象? – 2011-03-20 15:54:50

+0

我对Windows API一无所知,但您需要一个用于保存数据的数据结构,对吧?如果没有使用缓冲区,你会在哪里保存它们? – ierax 2011-03-20 15:56:53

回答

0

* Buf是您用来存储项目的实际内存指针。我想你在这里使用VirtualAlloc()来创建你的缓冲区?如果是这样,您需要知道队列的最大大小。

顺便说一句,为什么你不能使用STL队列?