deque という名前は double-ended queue の略語で、デックと発音します。伝統的に、この用語は、コレクションの先頭または末尾への挿入と削除の両方を可能にする、任意のデータ構造を記述するために使用されます。deque コンテナクラスでは、これ以上のことが可能です。事実、deque データ構造の機能は、ほぼ vector クラスと list クラスの機能を合わせたものと同等になっています。
vector と同様に、deque はインデックス付きコレクションです。コレクションでの位置をキーに利用することで、添字によって値にアクセスすることができます。この機能は、list クラスでは提供されません。
ただし、list と同様に、deque は先頭または末尾のいずれかに値を効率的に追加することもできます。vector クラスでは、限定的な機能しか提供されません。
list、vector の両クラスと同じように、deque で保持されるシーケンスの中間への挿入を行うことができます。このような挿入演算は list の場合ほど効率よくはありませんが、vector の場合よりはわずかに効率的です。
つまり、deque は、vector または list が要求される状況で使用することができます。vector や list の代わりに deque を使用すると、より高速なプログラムが生成されます。どのデータ構造を使用するかを決めるには、4.2 節に記述されている一連の質問を参照してください。
deque データ型を使用するすべてのプログラムに、deque ヘッダーファイルをイクルードする必要があります。
# include <deque>