2011-03-20 2 views
0

J'essaie d'implémenter une file d'attente.Implémentation de file d'attente avec tas

Ceci est mon cadre

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

Je fais cela avec un tas en utilisant l'API Windows. Quel est le but du tampon et comment est-il utilisé? Je sais que ça a quelque chose à voir avec le tas et la mémoire.

+0

Considérez ceci: Où stockez-vous les objets qui sont poussés dans la file d'attente? –

+0

Je ne sais rien de l'API Windows mais vous avez besoin d'une structure de données pour sauvegarder vos données, n'est-ce pas? Si aucun tampon n'est utilisé, où allez-vous les sauvegarder? – ierax

Répondre

0

* Buf est le pointeur de mémoire que vous utiliserez pour stocker vos éléments. J'imagine que vous utilisez VirtualAlloc() ici pour créer votre tampon? Si c'est le cas, vous devez connaître la taille maximale de votre file d'attente. Par ailleurs, pourquoi ne pas utiliser la file d'attente STL? En passant, pourquoi ne pas utiliser la file d'attente STL?

Questions connexes