FixedQueue

固定長キュー

std::queueは、ブロック単位でのメモリ確保を行い動的にキューのサイズを拡張していきますが、本クラスではメモリサイズを抑制し固定長のキューを実装します。

template<typename T>
class FixedQueue : public std::queue<T> { ... };

本クラスはstd::queueを継承しています。

バッファのブロックサイズ

GCCの場合はバッファのブロックサイズを定義することができます。

本ライブラリでの利用を想定し以下のように64バイトにしています。

#if __GNUC__
#define _GLIBCXX_DEQUE_BUF_SIZE 64
     // smaller chunk for deque in GCC, the dafalt size
     // 512bytes are too big for embedded systems.
#endif

#include <deque>
#include <queue>

メソッド

FixedQueue() - コンストラクタ

FixedQueue(std::size_t size)

sizeを最大値としてキューを生成します。

push()

bool push(T value)

キューに要素を追加します。キューが一杯になると何もせずfalseを返します。

pop()

void pop()

キューから要素を削除します。

front()

T& std::queue<T>::front()

要素にアクセスします。

empty()

bool std::queue<T>::empty()

キューが空の場合trueを返します。

最終更新