priority_queue (STL/CLR)
このテンプレート クラスは、オブジェクトをコントロールにアクセスを制限した要素の可変長の順序付けられたシーケンスについて説明します。 優先順位キューとして基になるコンテナーを管理するためにコンテナーのアダプター priority_queue を使用します。
以下の説明では GValue は Value な型が Value^場合、後者は ref 型である同じです。 同様に、GContainer は Container な型が Container^場合、後者は ref 型である同じです。
template<typename Value,
typename Container>
ref class priority_queue
System::ICloneable,
Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
{ ..... };
パラメーター
値
被制御シーケンス内の要素の型。[コンテナー]
基になるコンテナーの型。
メンバー
型定義 |
説明 |
---|---|
要素への定数参照の型です。 |
|
基になるコンテナーの型。 |
|
2 つの要素間の距離を表す、符号付きの型です。 |
|
コンテナーのアダプターのジェネリック インターフェイスの種類。 |
|
コンテナーのアダプターのジェネリック インターフェイスの要素の型。 |
|
要素への参照の型です。 |
|
2 つの要素間の距離を表す、符号付きの型です。 |
|
2 要素の順序のデリゲート。 |
|
要素の型。 |
メンバー関数 |
説明 |
---|---|
すべての要素を置き換えます。 |
|
要素が存在しないかどうかをテストします。 |
|
基になるコンテナーにアクセスします。 |
|
hghest 優先度の要素を削除します。 |
|
コンテナー オブジェクトを構築します。 |
|
新しい要素を追加します。 |
|
要素の数をカウントします。 |
|
優先順位の要素にアクセスします。 |
|
新しい配列に被制御シーケンスをコピーします。 |
|
2 つの要素のための順序付けデリゲートをコピーします。 |
プロパティ |
説明 |
---|---|
優先順位の要素にアクセスします。 |
演算子 |
説明 |
---|---|
被制御シーケンスを置き換えます。 |
インターフェイス
インターフェイス |
説明 |
---|---|
オブジェクトを複製します。 |
|
IPriorityQueueValue<のコンテナー> |
一般的なコンテナーのアダプターを保持します。 |
解説
オブジェクトは、基になるコンテナーを通じて被制御シーケンスに対するストレージの Value 要素を保存し、必要に応じて拡大、型 Containerの割り当て。 これは、シーケンスを簡単にアクセスでき、リムーバブル優先度の要素 (上の要素) を使用して、ヒープとして注文しておきます。 オブジェクトは、新しい要素をプッシュし、優先順位キューを実装する、優先度の高い要素をポップすることへのアクセスを制限します。
オブジェクトの型は priority_queue::value_compare (STL/CLR)の格納されたデリゲート オブジェクトを呼び出すことによって制御されるシーケンスを並べ替えます。 priority_queue を構築するときに格納されたデリゲート オブジェクトを指定する; デリゲート オブジェクトを指定しない場合、既定は比較 operator<(value_type, value_type)です。 メンバー関数 priority_queue::value_comp (STL/CLR)()を呼び出すことで、保存されたオブジェクトにアクセスします。
このようなデリゲート オブジェクトは priority_queue::value_type (STL/CLR)型の値に厳密な弱い順序付けを課さなければ必要があります。 このいずれかの 2 種類のキー X と Yのメジャー、:
value_comp()(X, Y) は 呼び出しごとに同じブール型の結果を返します。
value_comp()(X, Y) が TRUE の場合、value_comp()(Y, X) が false である必要があります。
value_comp()(X, Y) が TRUE の場合、X は Yの前に並べると呼ばれます。
!value_comp()(X, Y) && !value_comp()(Y, X) が TRUE の場合、同じ大小関係があると Y は X と呼ばれます。
被制御シーケンスの Y に先行する要素 X では、key_comp()(Y, X) は false です。(既定のデリゲート オブジェクトのキーは値でも減りません)。
優先度の高い要素はで他の要素の前に注文しない要素の 1 つです。
基になるコンテナーに要素がヒープとして注文しておくため:
コンテナーはランダム アクセス反復子をサポートする必要があります。
等価の順序を持つ要素が異なる順序で押されたよりポップ場合があります。(順序は安定していません)。
したがって、基になるコンテナーの候補が deque (STL/CLR) と vector (STL/CLR)が含まれます。
必要条件
ヘッダー: <cliext とキュー>
名前空間: の cliext