2012-06-15 15 views
6

necesito una cola en n artículos donde la inserción de (n 1) º artículo elimina el 0 º artículo y de inserción sólo puede ser realizado en la "atrás".
¿Existe alguna estructura de este tipo ya existente en la biblioteca boost o estándar?cola de tamaño limitado

+1

impulso? – PlasmaHH

+0

¿Se puede dar una limitación de tamaño allí? –

+1

Eso espero; un búfer circular de tamaño ilimitado no se distinguiría de un vector;) – Rook

Respuesta

8

Puede utilizar un boost::circular_buffer envuelto por un std::queue, algo como esto: buffer circular

#include <queue> 
#include <boost/circular_buffer.hpp> 

typedef std::queue<my_type, boost::circular_buffer<my_type>> my_queue; 
const int n = 3; 
... 
my_queue q(boost::circular_buffer<my_type>(n)); 
q.push(1); 
q.push(2); 
q.push(3); 
q.push(4); // queue now contains 2,3,4 
+1

pero ¿por qué colocarlo en una 'cola '? ¿por qué no mostrar 'circular_queue' –

+5

@DiproSen: el único propósito de' std :: queue' (ever), es evitar que acceda al contenedor subyacente que no sea presionando un extremo y leyendo/mostrando el otro. Tú eres quien dijo que necesitas uno. –

+0

¡Ahora que es realmente bueno, debo decir! :) –

Cuestiones relacionadas