2012-10-06 3 views
-2

J'ai un buffer de taille 2000, les données à insérer sont illimitées. Je veux, les données plus de 2000 devraient être ajoutées à partir de la fin du tampon, c'est-à-dire pousser toutes les données de droite à gauche et insérer de nouvelles données à la fin du tampon. Alors, quel genre d'algorithme ou de flux je devrais essayer?Gestion des tampons en c

Répondre

2

Vous souhaitez utiliser un FIFO ou un 'tampon circulaire'. Voir http://en.wikipedia.org/wiki/Circular_buffer pour une explication complète, ou même un exemple de code.

En fonction de vos besoins réels, la mise en œuvre peut être différente. Si, par exemple, vous devez toujours accéder séquentiellement aux 2 000 éléments, vous pouvez omettre le pointeur de lecture (car il s'agit toujours d'un élément derrière le pointeur d'écriture).

Editer: La file d'attente est quelque chose de similaire. Si vous utilisez C++, envisagez http://www.cplusplus.com/reference/stl/queue/