次の方法で共有


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>
    { ..... };

パラメーター


  • 被制御シーケンス内の要素の型。

  • [コンテナー]
    基になるコンテナーの型。

メンバー

型定義

Description

priority_queue::const_reference (STL/CLR)

要素への定数参照の型です。

priority_queue::container_type (STL/CLR)

基になるコンテナーの型。

priority_queue::difference_type (STL/CLR)

2 つの要素間の距離を表す、符号付きの型です。

priority_queue::generic_container (STL/CLR)

コンテナーのアダプターのジェネリック インターフェイス型。

priority_queue::generic_value (STL/CLR)

コンテナーのアダプターのジェネリック インターフェイスの要素の型。

priority_queue::reference (STL/CLR)

要素への参照の型です。

priority_queue::size_type (STL/CLR)

2 つの要素間の距離を表す、符号付きの型です。

priority_queue::value_compare (STL/CLR)

2 要素の命令のデリゲート。

priority_queue::value_type (STL/CLR)

要素の型。

メンバー関数

Description

priority_queue::assign (STL/CLR)

すべての要素を置き換えます。

priority_queue::empty (STL/CLR)

要素が存在しないかどうかをテストします。

priority_queue::get_container (STL/CLR)

基になるコンテナーにアクセスします。

priority_queue::pop (STL/CLR)

hghest 優先度の要素を削除します。

priority_queue::priority_queue (STL/CLR)

コンテナー オブジェクトを構築します。

priority_queue::push (STL/CLR)

新しい要素を追加します。

priority_queue::size (STL/CLR)

要素の数をカウントします。

priority_queue::top (STL/CLR)

優先順位の要素にアクセスします。

priority_queue::to_array (STL/CLR)

新しい配列に被制御シーケンスのコピー。

priority_queue::value_comp (STL/CLR)

2 つの要素のための順序付けデリゲートをコピーします。

プロパティ

Description

priority_queue::top_item (STL/CLR)

優先順位の要素にアクセスします。

[演算子]

Description

priority_queue::operator= (STL/CLR)

被制御シーケンスを置き換えます。

インターフェイス

Interface

Description

ICloneable

オブジェクトを複製します。

IPriorityQueue<値は、コンテナー>

ジェネリック コンテナーのアダプターを保持します。

解説

オブジェクトは、型 ContainerValue の要素を格納し、オンデマンド式で拡大基になるコンテナーを通じて被制御シーケンスに対するストレージの割り当ておよび解放は。これは、シーケンスを簡単にアクセスできるように、デタッチできる最も優先度の高い要素 (上の要素)を使用してヒープとして順序が維持されます。オブジェクトは、新しい要素を押して、優先順位キューを実行すると、優先順位の高い要素をポップすることへのアクセスを制限します。

オブジェクトに格納されたデリゲート オブジェクトの型 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 の場合、の順序がと同じであると X と Y は呼ばれます。

被制御シーケンスの Y を指定する要素 X については、 key_comp()(Y, X) は FALSE。(既定のデリゲート オブジェクトのキーは値では減りません)。

優先順位の要素はしたがって、他の要素の前に順序付けされていない要素の 1 つです。

基になるコンテナーが要素をヒープとして注文しておくため:

コンテナーはランダム アクセス反復子をサポートする必要があります。

同等の命令を持つ要素は異なる順序で押されたよりポップ場合があります。(手順は安定していません)。

したがって、基になるコンテナーの候補が deque (STL/CLR)vector (STL/CLR)が含まれます。

必要条件

ヘッダー: <cliext とキュー>

名前空間: の cliext

参照

関連項目

deque (STL/CLR)

queue (STL/CLR)

stack (STL/CLR)

vector (STL/CLR)

その他の技術情報

STL/CLR ライブラリ リファレンス