C ++ライブラリ-<キュー>
キューの概要
キューは、FIFO(先入れ先出し)コンテキストで動作するように設計されたデータ構造です。キュー内の要素はリアエンドから挿入され、フロントエンドから削除されます。
キュークラスはコンテナアダプタです。コンテナは、同じタイプのデータを保持するオブジェクトです。キューは、さまざまなシーケンスコンテナから作成できます。コンテナアダプタはイテレータをサポートしていないため、データ操作に使用することはできません。ただし、データの挿入と削除のために、それぞれpush()とpop()のメンバー関数をサポートしています。
定義
以下は、<queue>ヘッダーファイルからのstd :: queuerの定義です。
template <class T, class Container = deque<T> > class queue;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Container −基になるコンテナオブジェクトのタイプ。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | container_type | テンプレートの2番目のパラメーター |
3 | size_type | size_t |
4 | 参照 | value_type& |
5 | const_reference | const value_type& |
6 | Difference_type | ptrdiff_t |
<キュー>からの関数
以下は、<queue>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | queue :: queue デフォルトコンストラクタ 要素がゼロの空のキューオブジェクトを作成します。 |
2 | queue :: queue 初期化コンストラクター キューオブジェクトを構築し、ctnrのコピーによって内部コンテナを割り当てます。 |
3 | queue :: queuemove コンストラクター 移動セマンティクスを使用して、他のコンテンツでキューを構築します。 |
4 | queue :: queue コピーコンストラクタ
既存のキューotherに存在する各要素のコピーを使用してキューを構築します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | queue :: 〜queue
コンテナメモリの割り当てを解除して、キューを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | queue :: back
キューの最後の要素への参照を返します。 |
2 | queue :: emplace
キューの最後に新しい要素を作成して挿入します。 |
3 | queue :: empty
キューが空かどうかをテストします。 |
4 | queue :: front
キューの最初の要素への参照を返します。 |
5 | queue :: operator =コピーバージョン 古いコンテンツを置き換えることにより、新しいコンテンツをキューに割り当てます。 |
6 | queue :: operator =ムーブバージョン 古いコンテンツを置き換えることにより、新しいコンテンツをキューに割り当てます。 |
7 | queue :: pop
キューのフロント要素を削除します。 |
8 | queue :: pushコピーバージョン キューの最後に新しい要素を挿入します。 |
9 | queue :: pushmoveバージョン キューの最後に新しい要素を挿入します。 |
10 | queue :: size
キューに存在する要素の総数を返します。 |
11 | queue :: swap
キューの内容を別のキューの内容と交換します。 |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | 演算子==
2つのキューが等しいかどうかをテストします。 |
2 | 演算子!=
2つのキューが等しいかどうかをテストします。 |
3 | 演算子<
最初のキューが他のキューよりも少ないかどうかをテストします。 |
4 | 演算子<=
最初のキューが他のキュー以下であるかどうかをテストします。 |
5 | 演算子>
最初のキューが他のキューよりも大きいかどうかをテストします。 |
6 | 演算子> =
最初のキューが他のキュー以上であるかどうかをテストします。 |
7 | スワップ
2つのキューの内容を交換します。 |
priority_queueの概要
優先キューは、優先度を保持するキューデータ構造です。優先度付きキューは、要素を任意の順序で挿入でき、常に最大ヒープ要素が最初に取得されるヒープデータ構造に類似しています。
定義
以下は、<queue>ヘッダーファイルからのstd :: priority_queueの定義です。
template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Container −基になるコンテナオブジェクトのタイプ。
Compare −priority_queueの順序付けに使用される比較オブジェクト。
これは、2つの引数を比較できる関数ポインタまたは関数オブジェクトである可能性があります。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | container_type | テンプレートの2番目のパラメーター |
3 | size_type | size_t |
4 | 参照 | value_type& |
5 | const_reference | const value_type& |
6 | Difference_type | ptrdiff_t |
<キュー>からの関数
以下は、<queue>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | priority_queue :: priority_queue デフォルトコンストラクタ ゼロ要素で空のpriority_queueを構築します。 |
2 | priority_queue :: priority_queue 初期化コンストラクター priority_queueオブジェクトを構築し、ctnrのコピーによって内部コンテナを割り当てます。 |
3 | priority_queue :: priority_queue 範囲コンストラクター 最初から最後までの範囲の要素をできるだけ多く使用してpriority_queueを構築します。 |
4 | priority_queue :: priority_queue 移動コンストラクター 移動セマンティクスを使用して、他のコンテンツでpriority_queueを構築します。 |
5 | priority_queue :: priority_queue コピーコンストラクタ 既存のpriority_queueotherに存在する各要素のコピーを使用してpriority_queueを構築します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | priority_queue :: 〜priority_queue
コンテナメモリの割り当てを解除してpriority_queueを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | priority_queue :: emplace
新しい要素を作成し、priority_queueに並べ替えられた順序で挿入します。 |
2 | priority_queue :: empty
pritority_queueが空かどうかをテストします。 |
3 | priority_queue :: operator = コピーバージョン 古いコンテンツを置き換えることにより、priority_queueに新しいコンテンツを割り当てます。 |
4 | priority_queue :: operator = ムーブバージョン 古いコンテンツを置き換えることにより、priority_queueに新しいコンテンツを割り当てます。 |
5 | priority_queue :: pop
priority_queueのfront要素を削除します。 |
6 | priority_queue ::プッシュ コピーバージョン ソートされた順序で新しい要素を挿入します。 |
7 | priority_queue ::プッシュ 移動バージョン ソートされた順序で新しい要素を挿入します。 |
8 | priority_queue :: size
priority_queueに存在する要素の総数を返します。 |
9 | priority_queue :: swap
priority_queueの内容を別のpriority_queueの内容と交換します。 |
10 | priority_queue :: top
priority_queueの最初の要素への参照を返します |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | スワップ
priority_queueの内容を別のpriority_queueの内容と交換します。 |