2012-06-15 11 views
6

मैं n आइटम जहां (n +1) वें आइटम की प्रविष्टि 0 वें आइटम और सम्मिलन को हटा पर एक कतार जरूरत है केवल पर "वापस" बनाया जा सकता है।
क्या बूस्ट या मानक लाइब्रेरी में पहले से ही ऐसी कोई संरचना है?सीमित आकार कतार

+1

बढ़ावा परिपत्र बफर? – PlasmaHH

+0

क्या आप वहां आकार सीमा दे सकते हैं? –

+1

मुझे उम्मीद है; असंबद्ध आकार का एक गोलाकार बफर एक वेक्टर से अलग नहीं होगा;) – Rook

उत्तर

8

आप उपयोग कर सकते हैं एक boost::circular_buffer, एक std::queue से लिपटे कुछ इस तरह:

#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

लेकिन इसे 'कतार' में क्यों लपेटें? क्यों नहीं 'circular_queue' –

+5

@DiproSen: 'std :: queue' (कभी भी) का एकमात्र उद्देश्य, एक अंत को धक्का और पढ़ने/पॉपिंग करने के अलावा, अंतर्निहित कंटेनर तक पहुंचने से रोकने के लिए है। आप ही हैं जिन्होंने कहा कि आपको एक की जरूरत है। –

+0

अब यह वास्तव में साफ है, मुझे कहना होगा! :) –

संबंधित मुद्दे