STLはdeque implementation、ブーストdeque implementationです。しかし、どちらもシーケンスコンテナ(アロケータによる動的割り当て)のSTLの方法を使用します。C++静的に割り当てられたダブルエンドキュー実装
私は信頼性が高く、高速で静的に割り当てられたdeque実装を探しています。これは次のようになります。
template<typename T, unsigned int S>
class StaticDeque
{
T m_elements[S];
};
すべての要素は静的に割り当てられます。
注1:STLベースのソリューション(ベクタとデュークのデータを静的に割り当てるカスタムアロケータを使用しています)がありますが、より良いソリューション(実行時間の短縮)を探しています。
注2:メモリ内の定義済み(高速アクセス)領域のデータを処理するため、静的に割り当てられたメモリが必要です。だから、オブジェクトは次のように宣言されます:#pragma DATA_SECTION("fast_memory")
StaticDeque<int, 10> payloads;
あなたの質問は何ですか?基本的には、キューの現在の端を示す2つのインデックスを持つ循環バッファが必要です。 –
デキューへのマルチスレッドアクセスが必要ですか? –
あなたはフロントを置いて自分のリングバッファを作ることができ、簡単にバックファンクションを置くことができます。 stlデッキには、dinammicalyリンクリストに対処するためのオーバーヘッドがたくさんあります。 –