次の方法で共有


deque クラス

特定の型の要素をベクターのような線形の配置に整列し、任意の要素への高速なランダム アクセス、およびコンテナーの後ろでの効率的な挿入と削除を行えるようにします。 ただし、ベクターとは異なり、deque クラスは、コンテナーの前での効率的な挿入と削除もサポートします。

template <
    class Type, 
    class Allocator=allocator<Type> 
>
    class deque

パラメーター

  • Type
    deque に格納される要素のデータ型。

  • Allocator
    メモリの deque の割り当てと解放に関する詳細をカプセル化する、格納されたアロケーター オブジェクトを表す型。 この引数は省略可能であり、既定値は allocator<Type> です。

解説

一般的に、コンテナー型の選択は、アプリケーションにおいて必要な検索および挿入の種類に基づいている必要があります。 ベクターは、任意の要素へのランダム アクセスが優先事項であり、要素の挿入または削除がシーケンスの最後にのみ必要な場合に、シーケンスを管理するための推奨されるコンテナーです。 リスト コンテナーでは、シーケンス内の任意の位置における (定数時間での) 効率的な挿入と削除が優先事項である場合に、より優れたパフォーマンスになります。 シーケンスの途中でこのような操作を行うには、シーケンス (線形時間) 内の要素数に比例した要素のコピーおよび割り当てが必要になります。

deque の再割り当ては、メンバー関数がシーケンスの要素を挿入または消去する必要がある場合に発生します。

  • 要素が空のシーケンスに挿入された場合、または空のシーケンスを残すために要素が消去された場合は、begin および end によって以前に返された反復子が無効になります。

  • 要素が deque の最初の位置に挿入された場合は、既存の要素を指定するすべての反復子 (参照を除く) が無効になります。

  • 要素が deque の末尾に挿入された場合は、end および既存の要素を指定するすべての反復子 (参照を除く) が無効になります。

  • 要素が deque の前で消去された場合は、その反復子と消去された要素へ参照のみが無効になります。

  • 最後の要素が deque の末尾から消去された場合は、最後の要素への反復子と消去された要素への参照のみが無効になります。

それ以外の場合、要素を挿入または消去すると、すべての反復子および参照が無効になります。

コンストラクター

deque

deque を構築します。異なる方法で新しい deque の内容を設定するための複数のコンストラクターが用意されています (空の場合に指定した空の要素数で読み込む、別の deque から内容をコピーまたは移動する、反復子を使用して内容をコピーまたは移動する、1 つの要素を deque に _Count 回コピーするなど)。 一部のコンストラクターでは、要素を作成するためのカスタムの allocator を使用できます。

Typedef

allocator_type

deque オブジェクトの allocator クラスを表す型。

const_iterator

deque 内の要素にアクセスし、読み取ることができるランダム アクセス反復子を const として提供する型。

const_pointer

deque 内の要素へのポインターを const. として提供する型。

const_reference

読み取りと他の操作の実行のために、deque 内の要素への参照を const. として提供する型。

const_reverse_iterator

deque 内の要素にアクセスし、読み取ることができるランダム アクセス反復子を const として提供する型。 deque は逆に表示されます。 詳細については、「reverse_iterator クラス」を参照してください。

difference_type

同じ deque 内の要素を参照する 2 つのランダム アクセス反復子の違いを提供する型。

iterator

deque 内の任意の要素を読み取り、または変更できるランダム アクセス反復子を提供する型。

pointer

deque 内の要素へのポインターを提供する型。

参照

deque に格納されている要素への参照を提供する型。

reverse_iterator

deque 内の要素を読み取り、または変更できるランダム アクセス反復子を提供する型。 deque は逆の順序で表示されます。

size_type

deque 内の要素の数をカウントする型。

value_type

deque に格納されているデータ型を表す型。

メンバー関数

assign

deque から要素を消去し、対象の deque に要素の新しいシーケンスをコピーします。

at

deque 内の指定した位置にある要素への参照を返します。

back

deque の最後の要素への参照を返します。

begin

deque 内の最初の要素を示すランダム アクセス反復子を返します。

deque::cbegin

deque 内の最初の要素への定数反復子を返します。

deque::cend

deque の末尾の次の位置を指し示すランダム アクセス const 反復子を返します。

clear

deque のすべての要素を消去します。

deque::crbegin

deque 内の最初の要素へのランダム アクセス定数反復子を返します。

deque::crend

deque 内の最初の要素へのランダム アクセス定数反復子を返します。

deque::emplace

指定した位置において、構築された要素を deque の適切な場所に挿入します。

deque::emplace_back

構築された要素を deque の末尾の適切な場所に追加します。

deque::emplace_front

構築された要素を deque の先頭の適切な場所に追加します。

empty

deque に含まれている要素がゼロ個の場合に true を返し、1 つ以上の要素が含まれている場合に false を返します。

End

deque の末尾の次の位置を指し示すランダム アクセス反復子を返します。

erase

指定した位置から deque の要素または要素範囲を削除します。

front

deque 内の最初の要素への参照を返します。

get_allocator

deque の構築に使用される allocator オブジェクトのコピーを返します。

insert

指定した位置において、deque に単一の要素、複数の要素、または要素の範囲を挿入します。

max_size

deque の可能な最大長を返します。

pop_back

deque の末尾の要素を消去します。

pop_front

deque の先頭の要素を消去します。

push_back

deque の末尾に要素を追加します。

push_front

deque の先頭に要素を追加します。

rbegin

逆順の deque 内の最初の要素へのランダム アクセス反復子を返します。

rend

逆順の deque 内の最後の要素の次の位置を指し示すランダム アクセス反復子を返します。

resize

deque の新しいサイズを指定します。

deque::shrink_to_fit

余分なキャパシティを破棄します。

size

deque 内の要素数を返します。

swap

2 つの deque の要素を交換します。

演算子

operator[]

指定した位置における deque 要素への参照を返します。

deque::operator=

別の deque のコピーで deque の要素を置き換えます。

必要条件

ヘッダー: <deque>

参照

関連項目

C++ 標準ライブラリ内のスレッド セーフ

標準テンプレート ライブラリ

その他の技術情報

<deque> メンバー

deque のクラス メンバー