隊列類結構,我更多的是硬件的人,但芯片設計工具,我使用的是要求我寫一些C++代碼。我不熟悉面向對象的編程;雖然我有C.辦理好什麼,我要求的是如何構建我的類(稱爲cq
)來完成手頭任務的說明。可變尺寸和類型
我想能夠生成一個指定的數據類型和指定的大小(生成後應該不會改變)的隊列。理想情況下,這將是這樣做...
my_queue = new cq(uint8_t, 6);
...這將生成六個8位無符號整數的數組(或向量)。
然後,我想的方法既插入一個元素到一個端部和在所述隊列的頭返回元素如下。
uint8_t front;
front = my_queue.advance(28);
我需要什麼樣的結構來完成這個?我需要的模板,因爲數據類型是可變的?或者我應該有一個泛型類,並且每個數據類型都有一個類繼承它的結構?
謝謝!
編輯:使用從下面的答案輸入,我已經想出了以下內容:
template <class type>
template <class size>
class CQ {
private:
// Allocates a queue with type and size
// specified by template arguments.
std::queue<type> cycle_queue(size, 0);
public:
// Inserts input to the end of the queue;
// removes and returns the front element.
type advance(type in){
type out = cycle_queue.front();
cycle_queue.push_back(in);
cycle_queue.pop_front();
return out;
}
}
我的問題就變成了......我怎麼在我的主C++程序實例呢?再次
CQ<uint8_t><6> my_queue;
my_queue.advance(28);
感謝:我想這一點,但它沒有工作!
這似乎確實很有吸引力;然而,這種解決方案是否保持恆定的隊列大小?當我開始時,我不希望它是空的。我希望它始終具有我指定的長度並初始化爲零。 –
當你從這個容器中移除元素時會發生什麼? – Spook
@EvanW:所以你想要一個固定大小的鈴聲? – sheu