C ++ライブラリ-<deque>
前書き
Dequeはの頭字語です Double Ended Queue。ランタイムのサイズを変更できるシーケンスコンテナです。コンテナは、同じタイプのデータを保持するオブジェクトです。シーケンスコンテナは、要素を厳密に線形シーケンスで格納します。
dequeの要素は、メモリのさまざまなチャンクに分散できます。コンテナには、任意の要素に一定時間で直接アクセスできるようにするために必要な情報が格納されています。ベクトルとは異なり、dequeは、すべての要素を連続したメモリ位置に格納することが保証されていません。したがって、ポインタをオフセットしてデータに直接アクセスすることはできません。ただし、添え字演算子[]を使用して任意の要素に直接アクセスできます。
Dequeは、実行時に両端から必要に応じて縮小または拡張できます。ストレージ要件は、内部アロケーターによって自動的に満たされます。Dequeはベクトルと同様の機能を提供しますが、任意の端からデータを挿入および削除する効率的な方法を提供します。
ゼロサイズの両端キューも有効です。その場合、deque.begin()とdeque.end()は同じ場所を指します。ただし、front()またはback()を呼び出す動作は定義されていません。
定義
以下は、<deque>ヘッダーファイルからのstd :: dequeの定義です。
template < class T, class Alloc = allocator<T> > class deque;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Alloc −アロケータオブジェクトのタイプ。
デフォルトでは、アロケータクラステンプレートが使用されます。これは、最も単純なメモリ割り当てモデルを定義し、値に依存しません。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | allocator_type | Alloc(テンプレートの2番目のパラメーター) |
3 | 参照 | value_type& |
4 | const_reference | const value_type& |
5 | ポインター | value_type * |
6 | const_pointer | const value_type * |
7 | イテレータ | value_typeへのランダムアクセスイテレータ |
8 | const_iterator | constvalue_typeへのランダムアクセスイテレータ |
9 | reverse_iterator | std :: reverse_iterator <イテレータ> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | Difference_type | ptrdiff_t |
<deque>からの関数
以下は、<deque>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | deque :: deque
デフォルトコンストラクタ
要素がゼロの空の両端キューを作成します。 |
2 | deque :: dequefill コンストラクタ
n個の要素を使用して新しい両端キューを作成し、両端キューの各要素にvalを割り当てます |
3 | deque :: deque 範囲コンストラクタ
最初から最後までの範囲内の数の要素を使用して両端キューを作成します。 |
4 | deque :: deque コピーコンストラクタ
既存のコンテナに存在する各要素のコピーを使用して両端キューを構築します。 |
5 | deque :: dequemove コンストラクター
移動セマンティクスを使用して、他のコンテンツで両端キューを構築します。 |
6 | deque :: deque 初期化子リストコンストラクター
初期化リストから両端キューを作成します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | deque :: 〜deque
メモリの割り当てを解除することにより、dequeオブジェクトを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | deque :: assign 範囲バージョン
古い値を置き換えることにより、deque要素に新しい値を割り当てます。 |
2 | deque :: assign 塗りつぶしバージョン
古い値を置き換えることにより、deque要素に新しい値を割り当てます。 |
3 | deque :: assign イニシャライザリストバージョン
古い値を置き換えることにより、deque要素に新しい値を割り当てます。 |
4 | deque :: at
dequeの位置nに存在する要素への参照を返します。 |
5 | deque :: back
dequeの最後の要素への参照を返します。 |
6 | deque :: begin
dequeの最初の要素を指すランダムアクセスイテレータを返します。 |
7 | deque :: cbegin
dequeの先頭を指す定数ランダムアクセスイテレータを返します。 |
8 | deque :: cend
dequeの先頭を指す定数ランダムアクセスイテレータを返します。 |
9 | deque :: clear
dequeからすべての要素を削除してdequeを破棄し、dequeのサイズをゼロに設定します。 |
10 | deque :: crbegin
コンテナのリバーサーの先頭を指す定数リバースイテレータを返します。 |
11 | deque :: crend
dequeの逆端を指す定数逆イテレータを返します。 |
12 | deque :: emplace
位置に新しい要素を挿入してコンテナを拡張します。 |
13 | deque :: emplace_back
dequeの最後に新しい要素を挿入します。 |
14 | deque :: emplace_front
dequeの先頭に新しい要素を挿入します。 |
15 | deque :: empty
dequeが空かどうかをテストします。 |
16 | deque :: end
dequeコンテナ内のpast-the-end要素を指すイテレータを返します。 |
17 | deque :: erase位置バージョン
dequeから単一の要素を削除します。 |
18 | deque :: erase範囲バージョン dequeから単一の要素を削除します。 |
19 | deque :: front
dequeの最初の要素への参照を返します |
20 | deque :: get_allocator
dequeに関連付けられたアロケータを返します |
21 | deque :: 単一要素バージョンを挿入
位置に新しい要素を挿入してコンテナを拡張します。 |
22 | deque :: insert 塗りつぶしバージョン
コンテナに新しい要素を挿入してコンテナを拡張します。 |
23 | deque :: insert 範囲バージョン
コンテナに新しい要素を挿入してコンテナを拡張します。 |
24 | deque :: insert 移動バージョン コンテナに新しい要素を挿入してコンテナを拡張します。 |
25 | deque :: insert イニシャライザリストバージョン
コンテナに新しい要素を挿入してコンテナを拡張します。 |
26 | deque :: max_size
dequeが保持できる要素の最大数を返します。 |
27 | deque :: operator = コピーバージョン
古いコンテンツを置き換えて新しいコンテンツを両端キューに割り当て、必要に応じてサイズを変更します。 |
28 | deque :: operator = ムーブバージョン
古いコンテンツを置き換えて新しいコンテンツを両端キューに割り当て、必要に応じてサイズを変更します。 |
29 | deque :: operator = 初期化子リストのバージョン
古いコンテンツを置き換えて新しいコンテンツを両端キューに割り当て、必要に応じてサイズを変更します。 |
30 | deque :: operator []
位置nに存在する要素への参照を返します。 |
31 | deque :: pop_back
dequeから最後の要素を削除し、dequeのサイズを1つ減らします。 |
32 | deque :: pop_front
dequeから最初の要素を削除し、dequeのサイズを1つ減らします。 |
33 | deque :: push_back
dequeの最後に新しい要素を挿入し、dequeのサイズを1つ増やします。 |
34 | deque :: push_back 移動バージョン
dequeの最後に新しい要素を挿入し、dequeのサイズを1つ増やします。 |
35 | deque :: push_front
dequeの前に新しい要素を挿入し、dequeのサイズを1つ増やします。 |
36 | deque :: push_front 移動バージョン
dequeの前に新しい要素を挿入し、dequeのサイズを1つ増やします。 |
37 | deque :: rbegin
dequeの最後の要素を指す逆イテレータを返します。 |
38 | deque :: rend
dequeの逆端を指す逆イテレータを返します。 |
39 | deque :: resize
dequeのサイズを変更します。 |
40 | deque :: resize 値バージョン
dequeのサイズを変更します。 |
41 | deque :: shrink_to_fit
サイズに合わせて容量を減らすようにコンテナに要求します。 |
42 | deque :: size
dequeに存在する要素の数を返します。 |
43 | deque :: swap
取引所別両端キューの内容で両端キューの内容のx。 |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | 演算子==
2つの両端キューが等しいかどうかをテストします。 |
2 | 演算子!=
2つの両端キューが等しいかどうかをテストします。 |
3 | 演算子<
最初の両端キューが他の両端キューよりも小さいかどうかをテストします。 |
4 | 演算子<=
最初の両端キューが他の両端キュー以下であるかどうかをテストします。 |
5 | 演算子>
最初の両端キューが他の両端キューよりも大きいかどうかをテストします。 |
6 | 演算子> =
最初の両端キューが他の両端キュー以上であるかどうかをテストします。 |
7 | スワップ
2つの両端キューの内容を交換します。 |