Bagikan melalui


priority_queue (STL/CLR)

Kelas templat menjelaskan objek yang mengontrol urutan elemen yang diurutkan dengan panjang bervariasi yang memiliki akses terbatas. Anda menggunakan adaptor priority_queue kontainer untuk mengelola kontainer yang mendasar sebagai antrean prioritas.

Dalam deskripsi di bawah ini, GValue sama dengan Nilai kecuali yang terakhir adalah jenis ref, dalam hal ini adalah Value^. Demikian pula, GContainer sama dengan Kontainer kecuali yang terakhir adalah jenis ref, dalam hal ini adalah Container^.

Sintaks

template<typename Value,
    typename Container>
    ref class priority_queue
        System::ICloneable,
        Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
    { ..... };

Parameter

Nilai
Jenis elemen dalam urutan terkontrol.

Kontainer
Jenis kontainer yang mendasar.

Persyaratan

Header:<cliext/queue>

Namespace: cliext

Deklarasi

Definisi Tipe Deskripsi
priority_queue::const_reference (STL/CLR) Jenis referensi konstanta ke elemen.
priority_queue::container_type (STL/CLR) Jenis kontainer yang mendasar.
priority_queue::d ifference_type (STL/CLR) Jenis jarak yang ditandatangani antara dua elemen.
priority_queue::generic_container (STL/CLR) Jenis antarmuka generik untuk adaptor kontainer.
priority_queue::generic_value (STL/CLR) Jenis elemen untuk antarmuka generik untuk adaptor kontainer.
priority_queue::reference (STL/CLR) Jenis referensi ke elemen.
priority_queue::size_type (STL/CLR) Jenis jarak yang ditandatangani antara dua elemen.
priority_queue::value_compare (STL/CLR) Delegasi pemesanan untuk dua elemen.
priority_queue::value_type (STL/CLR) Jenis elemen.
Fungsi Anggota Deskripsi
priority_queue::assign (STL/CLR) Menggantikan semua elemen.
priority_queue::empty (STL/CLR) Menguji apakah tidak ada elemen yang ada.
priority_queue::get_container (STL/CLR) Mengakses kontainer yang mendasar.
priority_queue::p op (STL/CLR) Menghapus elemen prioritas hghest.
priority_queue::p riority_queue (STL/CLR) Membuat objek kontainer.
priority_queue::p ush (STL/CLR) Menambahkan elemen baru.
priority_queue::size (STL/CLR) Menghitung jumlah elemen.
priority_queue::top (STL/CLR) Mengakses elemen prioritas tertinggi.
priority_queue::to_array (STL/CLR) Menyalin urutan terkontrol ke array baru.
priority_queue::value_comp (STL/CLR) Menyalin delegasi pengurutan untuk dua elemen.
Properti Deskripsi
priority_queue::top_item (STL/CLR) Mengakses elemen prioritas tertinggi.
Operator Deskripsi
priority_queue::operator= (STL/CLR) Menggantikan urutan terkontrol.

Antarmuka

Antarmuka Deskripsi
ICloneable Menduplikasi objek.
Nilai IPriorityQueue<, Kontainer> Pertahankan adaptor kontainer generik.

Keterangan

Objek mengalokasikan dan membebaskan penyimpanan untuk urutan yang dikontrolnya melalui kontainer dasar, jenis Container, yang menyimpan Value elemen dan tumbuh sesuai permintaan. Ini menjaga urutan diurutkan sebagai tumpukan, dengan elemen prioritas tertinggi (elemen teratas) mudah diakses dan dilepas. Objek membatasi akses untuk mendorong elemen baru dan hanya memunculkan elemen prioritas tertinggi, menerapkan antrean prioritas.

Objek mengurutkan urutan yang dikontrolnya dengan memanggil objek delegasi tersimpan jenis priority_queue::value_compare (STL/CLR). Anda dapat menentukan objek delegasi tersimpan saat membuat priority_queue; jika Anda tidak menentukan objek delegasi, defaultnya adalah perbandingan operator<(value_type, value_type). Anda mengakses objek tersimpan ini dengan memanggil fungsi anggota priority_queue::value_comp (STL/CLR)().

Objek delegasi semacam itu harus memberlakukan urutan lemah yang ketat pada nilai jenis priority_queue::value_type (STL/CLR). Itu berarti, untuk dua kunci X dan Y:

value_comp()(X, Y) mengembalikan hasil Boolean yang sama pada setiap panggilan.

Jika value_comp()(X, Y) benar, maka value_comp()(Y, X) harus salah.

Jika value_comp()(X, Y) benar, maka X dikatakan dipesan sebelum Y.

Jika !value_comp()(X, Y) && !value_comp()(Y, X) benar, maka X dan Y dikatakan memiliki urutan yang setara.

Untuk elemen X apa pun yang mendahului Y dalam urutan terkontrol, key_comp()(Y, X) adalah false. (Untuk objek delegasi default, kunci tidak pernah berkurang nilainya.)

Elemen prioritas tertinggi dengan demikian adalah salah satu elemen yang tidak diurutkan sebelum elemen lain.

Karena kontainer yang mendasar menyimpan elemen yang diurutkan sebagai timbunan:

Kontainer harus mendukung iterator akses acak.

Elemen dengan pengurutan yang setara dapat muncul dalam urutan yang berbeda dari yang didorong. (Pemesanan tidak stabil.)

Dengan demikian, kandidat untuk kontainer yang mendasar termasuk deque (STL/CLR) dan vektor (STL/CLR).

Anggota

priority_queue::assign (STL/CLR)

Menggantikan semua elemen.

Sintaks

void assign(priority_queue<Value, Container>% right);

Parameter

right
Adaptor kontainer untuk disisipkan.

Keterangan

Fungsi anggota ditetapkan ke kontainer yang mendasar right.get_container() . Anda menggunakannya untuk mengubah seluruh konten antrean.

Contoh

// cliext_priority_queue_assign.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign a repetition of values
    Mypriority_queue c2;
    c2.assign(c1);
    for each (wchar_t elem in c2.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
c a b

priority_queue::const_reference (STL/CLR)

Jenis referensi konstanta ke elemen.

Sintaks

typedef value_type% const_reference;

Keterangan

Jenis ini menjelaskan referensi konstan ke elemen.

Contoh

// cliext_priority_queue_const_reference.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display reversed contents " c b a"
    for (; !c1.empty(); c1.pop())
        {   // get a const reference to an element
        Mypriority_queue::const_reference cref = c1.top();
        System::Console::Write("{0} ", cref);
        }
    System::Console::WriteLine();
    return (0);
    }
c b a

priority_queue::container_type (STL/CLR)

Jenis kontainer yang mendasar.

Sintaks

typedef Container value_type;

Keterangan

Jenisnya adalah sinonim untuk parameter Containertemplat .

Contoh

// cliext_priority_queue_container_type.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c" using container_type
    Mypriority_queue::container_type wc1 = c1.get_container();
    for each (wchar_t elem in wc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b

priority_queue::d ifference_type (STL/CLR)

Jenis jarak yang ditandatangani antara dua elemen.

Sintaks

typedef int difference_type;

Keterangan

Jenis ini menjelaskan jumlah elemen yang mungkin negatif.

Contoh

// cliext_priority_queue_difference_type.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // compute negative difference
    Mypriority_queue::difference_type diff = c1.size();
    c1.push(L'd');
    c1.push(L'e');
    diff -= c1.size();
    System::Console::WriteLine("pushing 2 = {0}", diff);

    // compute positive difference
    diff = c1.size();
    c1.pop();
    c1.pop();
    c1.pop();
    diff -= c1.size();
    System::Console::WriteLine("popping 3 = {0}", diff);
    return (0);
    }
c a b
pushing 2 = -2
popping 3 = 3

priority_queue::empty (STL/CLR)

Menguji apakah tidak ada elemen yang ada.

Sintaks

bool empty();

Keterangan

Fungsi anggota mengembalikan true untuk urutan yang dikontrol kosong. Setara dengan priority_queue::size (STL/CLR)() == 0. Anda menggunakannya untuk menguji apakah priority_queue kosong.

Contoh

// cliext_priority_queue_empty.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    System::Console::WriteLine("size() = {0}", c1.size());
    System::Console::WriteLine("empty() = {0}", c1.empty());

    // clear the container and reinspect
    c1.pop();
    c1.pop();
    c1.pop();
    System::Console::WriteLine("size() = {0}", c1.size());
    System::Console::WriteLine("empty() = {0}", c1.empty());
    return (0);
    }
c a b
size() = 3
empty() = False
size() = 0
empty() = True

priority_queue::generic_container (STL/CLR)

Jenis antarmuka generik untuk kontainer.

Sintaks

typedef Microsoft::VisualC::StlClr::IPriorityQueue<Value>
    generic_container;

Keterangan

Jenis menjelaskan antarmuka generik untuk kelas adaptor kontainer templat ini.

Contoh

// cliext_priority_queue_generic_container.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct a generic container
    Mypriority_queue::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1->get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify generic and display original
    gc1->push(L'd');
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify original and display generic
    c1.push(L'e');
    for each (wchar_t elem in gc1->get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
c a b
d c b a
e d b a c

priority_queue::generic_value (STL/CLR)

Jenis elemen untuk digunakan dengan antarmuka generik untuk kontainer.

Sintaks

typedef GValue generic_value;

Keterangan

Jenis menjelaskan objek jenis GValue yang menjelaskan nilai elemen tersimpan untuk digunakan dengan antarmuka generik untuk kelas kontainer templat ini. (GValue adalah value_type atau value_type^ jika value_type adalah jenis ref.)

Contoh

// cliext_priority_queue_generic_value.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // get interface to container
    Mypriority_queue::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1->get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // display in priority order using generic_value
    for (; !gc1->empty(); gc1->pop())
        {
        Mypriority_queue::generic_value elem = gc1->top();

        System::Console::Write("{0} ", elem);
        }
    System::Console::WriteLine();
    return (0);
    }
c a b
c a b
c b a

priority_queue::get_container (STL/CLR)

Mengakses kontainer yang mendasar.

Sintaks

container_type get_container();

Keterangan

Fungsi anggota mengembalikan kontainer yang mendasar. Anda menggunakannya untuk melewati batasan yang diberlakukan oleh pembungkus kontainer.

Contoh

// cliext_priority_queue_get_container.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b

priority_queue::operator= (STL/CLR)

Menggantikan urutan terkontrol.

Sintaks

priority_queue <Value, Container>% operator=(priority_queue <Value, Container>% right);

Parameter

right
Adaptor kontainer untuk disalin.

Keterangan

Operator anggota menyalin langsung ke objek, lalu mengembalikan *this. Anda menggunakannya untuk mengganti urutan terkontrol dengan salinan urutan terkontrol di sebelah kanan.

Contoh

// cliext_priority_queue_operator_as.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    Mypriority_queue c2;
    c2 = c1;
    for each (wchar_t elem in c2.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
c a b

priority_queue::p op (STL/CLR)

Menghapus elemen proiritas tertinggi.

Sintaks

void pop();

Keterangan

Fungsi anggota menghapus elemen prioritas tertinggi dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk mempersingkat antrean dengan satu elemen di bagian belakang.

Contoh

// cliext_priority_queue_pop.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // pop an element and redisplay
    c1.pop();
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
b a

priority_queue::p riority_queue (STL/CLR)

Membuat objek adaptor kontainer.

Sintaks

priority_queue();
priority_queue(priority_queue<Value, Container> right);
priority_queue(priority_queue<Value, Container> right);
explicit priority_queue(value_compare^ pred);
priority_queue(value_compare^ pred, container_type% cont);
template<typename InIt>
    priority_queue(InIt first, InIt last);
template<typename InIt>
    priority_queue(InIt first, InIt last,
        value_compare^ pred);
template<typename InIt>
    priority_queue(InIt first, InIt last,
        value_compare^ pred, container_type% cont);

Parameter

Lanjut
Kontainer untuk disalin.

first
Awal rentang yang akan disisipkan.

last
Akhir rentang untuk disisipkan.

pred
Memesan predikat untuk urutan yang dikendalikan.

right
Objek atau rentang untuk disisipkan.

Keterangan

Konstruktor:

priority_queue();

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan default. Anda menggunakannya untuk menentukan urutan awal yang dikontrol kosong, dengan predikat pengurutan default.

Konstruktor:

priority_queue(priority_queue<Value, Container>% right);

membuat kontainer yang dibungkus yang merupakan salinan , right.get_container()dengan predikat right.value_comp()pemesanan . Anda menggunakannya untuk menentukan urutan terkontrol awal yang merupakan salinan urutan yang dikontrol oleh objek antrean dengan benar, dengan predikat pengurutan yang sama.

Konstruktor:

priority_queue(priority_queue<Value, Container>^ right);

membuat kontainer yang dibungkus yang merupakan salinan , right->get_container()dengan predikat right->value_comp()pemesanan . Anda menggunakannya untuk menentukan urutan terkontrol awal yang merupakan salinan urutan yang dikontrol oleh objek *rightantrean , dengan predikat pengurutan yang sama.

Konstruktor:

explicit priority_queue(value_compare^ pred);

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan pred. Anda menggunakannya untuk menentukan urutan awal yang dikontrol kosong, dengan predikat pengurutan yang ditentukan.

Konstruktor:

priority_queue(value_compare^ pred, container_type cont);

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan pred, lalu mendorong semua elemen cont Anda menggunakannya untuk menentukan urutan awal yang dikontrol dari kontainer yang ada, dengan predikat pengurutan yang ditentukan.

Konstruktor:

template<typename InIt> priority_queue(InIt first, InIt last);

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan default, lalu mendorong urutan [first, last). Anda menggunakannya untuk menentukan urutan awal yang dikontrol dari eqeuence tertentu, dengan predikat pengurutan yang ditentukan.

Konstruktor:

template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred);

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan pred, lalu mendorong urutan [first, last). Anda menggunakannya untuk menentukan urutan awal yang dikontrol dari seqeuence tertentu, dengan predikat pengurutan yang ditentukan.

Konstruktor:

template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred, container_type% cont);

membuat kontainer yang dibungkus kosong, dengan predikat pengurutan pred, lalu mendorong semua elemen cont ditambah urutan [first, last). Anda menggunakannya untuk menentukan urutan awal yang dikontrol dari kontainer yang ada dan seqeuence tertentu, dengan predikat pengurutan yang ditentukan.

Contoh

// cliext_priority_queue_construct.cpp
// compile with: /clr
#include <cliext/queue>
#include <cliext/deque>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
typedef cliext::deque<wchar_t> Mydeque;
int main()
    {
// construct an empty container
    Mypriority_queue c1;
    Mypriority_queue::container_type^ wc1 = c1.get_container();
    System::Console::WriteLine("size() = {0}", c1.size());

    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');
    for each (wchar_t elem in wc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an ordering rule
    Mypriority_queue c2 = cliext::greater<wchar_t>();
    System::Console::WriteLine("size() = {0}", c2.size());

    for each (wchar_t elem in wc1)
        c2.push(elem);
    for each (wchar_t elem in c2.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an ordering rule by copying an underlying container
    Mypriority_queue c2x =
        gcnew Mypriority_queue(cliext::greater<wchar_t>(), *wc1);
   for each (wchar_t elem in c2x.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an iterator range
    Mypriority_queue c3(wc1->begin(), wc1->end());
    for each (wchar_t elem in c3.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an iterator range and an ordering rule
    Mypriority_queue c4(wc1->begin(), wc1->end(),
        cliext::greater<wchar_t>());
    for each (wchar_t elem in c4.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an iterator range, another container, and an ordering rule
    Mypriority_queue c5(wc1->begin(), wc1->end(),
        cliext::greater<wchar_t>(), *wc1);
    for each (wchar_t elem in c5.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct from a generic container
    Mypriority_queue c6(c3);
    for each (wchar_t elem in c6.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct by copying another container
    Mypriority_queue c7(%c3);
    for each (wchar_t elem in c7.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an ordering rule, by copying an underlying container
    Mypriority_queue c8 =
        gcnew Mypriority_queue(cliext::greater<wchar_t>(), *wc1);
    for each (wchar_t elem in c8.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    return (0);
    }
size() = 0
c a b
size() = 0
a c b
a c b
c a b
a c b
a a b c c b
c a b
c a b
a c b

priority_queue::p ush (STL/CLR)

Menambahkan elemen baru.

Sintaks

void push(value_type val);

Keterangan

Fungsi anggota menyisipkan elemen dengan nilai val ke dalam urutan yang dikontrol, dan menyusun ulang urutan yang dikontrol untuk mempertahankan disiplin tumpukan. Anda menggunakannya untuk menambahkan elemen lain ke antrean.

Contoh

// cliext_priority_queue_push.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b

priority_queue::reference (STL/CLR)

Jenis referensi ke elemen.

Sintaks

typedef value_type% reference;

Keterangan

Jenis ini menjelaskan referensi ke elemen.

Contoh

// cliext_priority_queue_reference.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify top of priority_queue and redisplay
    Mypriority_queue::reference ref = c1.top();
    ref = L'x';
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
x a b

priority_queue::size (STL/CLR)

Menghitung jumlah elemen.

Sintaks

size_type size();

Keterangan

Fungsi anggota mengembalikan panjang urutan yang dikontrol. Anda menggunakannya untuk menentukan jumlah elemen yang saat ini berada dalam urutan terkontrol. Jika yang Anda pedulikan hanyalah apakah urutan memiliki ukuran bukan nol, lihat priority_queue::empty (STL/CLR)().

Contoh

// cliext_priority_queue_size.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    System::Console::WriteLine("size() = {0} starting with 3", c1.size());

    // pop an item and reinspect
    c1.pop();
    System::Console::WriteLine("size() = {0} after popping", c1.size());

    // add two elements and reinspect
    c1.push(L'a');
    c1.push(L'b');
    System::Console::WriteLine("size() = {0} after adding 2", c1.size());
    return (0);
    }
c a b
size() = 3 starting with 3
size() = 2 after popping
size() = 4 after adding 2

priority_queue::size_type (STL/CLR)

Jenis jarak yang ditandatangani antara dua elemen.

Sintaks

typedef int size_type;

Keterangan

Jenis ini menjelaskan jumlah elemen non-negatif.

Contoh

// cliext_priority_queue_size_type.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // compute positive difference
    Mypriority_queue::size_type diff = c1.size();
    c1.pop();
    c1.pop();
    diff -= c1.size();
    System::Console::WriteLine("size difference = {0}", diff);
    return (0);
    }
c a b
size difference = 2

priority_queue::to_array (STL/CLR)

Menyalin urutan terkontrol ke array baru.

Sintaks

cli::array<Value>^ to_array();

Keterangan

Fungsi anggota mengembalikan array yang berisi urutan terkontrol. Anda menggunakannya untuk mendapatkan salinan urutan terkontrol dalam bentuk array.

Contoh

// cliext_priority_queue_to_array.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // copy the container and modify it
    cli::array<wchar_t>^ a1 = c1.to_array();

    c1.push(L'd');
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // display the earlier array copy
    for each (wchar_t elem in a1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
d c b a
c a b

priority_queue::top (STL/CLR)

Mengakses elemen prioritas tertinggi.

Sintaks

reference top();

Keterangan

Fungsi anggota mengembalikan referensi ke elemen atas (prioritas tertinggi) dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk mengakses elemen prioritas tertinggi, ketika Anda tahu itu ada.

Contoh

// cliext_priority_queue_top.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect last item
    System::Console::WriteLine("top() = {0}", c1.top());

    // alter last item and reinspect
    c1.top() = L'x';
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }

priority_queue::top_item (STL/CLR)

Mengakses elemen prioritas tertinggi.

Sintaks

property value_type back_item;

Keterangan

Properti mengakses elemen teratas (prioritas tertinggi) dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk membaca atau menulis elemen prioritas tertinggi, ketika Anda tahu itu ada.

Contoh

// cliext_priority_queue_top_item.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect last item
    System::Console::WriteLine("top_item = {0}", c1.top_item);

    // alter last item and reinspect
    c1.top_item = L'x';
    for each (wchar_t elem in c1.get_container())
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c a b
top_item = c
x a b

priority_queue::value_comp (STL/CLR)

Menyalin delegasi pengurutan untuk dua elemen.

Sintaks

value_compare^ value_comp();

Keterangan

Fungsi anggota mengembalikan delegasi pengurutan yang digunakan untuk mengurutkan urutan yang dikontrol. Anda menggunakannya untuk membandingkan dua nilai.

Contoh

// cliext_priority_queue_value_comp.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    Mypriority_queue::value_compare^ vcomp = c1.value_comp();

    System::Console::WriteLine("compare(L'a', L'a') = {0}",
        vcomp(L'a', L'a'));
    System::Console::WriteLine("compare(L'a', L'b') = {0}",
        vcomp(L'a', L'b'));
    System::Console::WriteLine("compare(L'b', L'a') = {0}",
        vcomp(L'b', L'a'));
    System::Console::WriteLine();

    // test a different ordering rule
    Mypriority_queue c2 = cliext::greater<wchar_t>();
    vcomp = c2.value_comp();

    System::Console::WriteLine("compare(L'a', L'a') = {0}",
        vcomp(L'a', L'a'));
    System::Console::WriteLine("compare(L'a', L'b') = {0}",
        vcomp(L'a', L'b'));
    System::Console::WriteLine("compare(L'b', L'a') = {0}",
        vcomp(L'b', L'a'));
    return (0);
    }
compare(L'a', L'a') = False
compare(L'a', L'b') = True
compare(L'b', L'a') = False

compare(L'a', L'a') = False
compare(L'a', L'b') = False
compare(L'b', L'a') = True

priority_queue::value_compare (STL/CLR)

Delegasi pengurutan untuk dua nilai.

Sintaks

binary_delegate<value_type, value_type, int> value_compare;

Keterangan

Jenis adalah sinonim untuk delegasi yang menentukan apakah argumen pertama diurutkan sebelum yang kedua.

Contoh

// cliext_priority_queue_value_compare.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    Mypriority_queue::value_compare^ vcomp = c1.value_comp();

    System::Console::WriteLine("compare(L'a', L'a') = {0}",
        vcomp(L'a', L'a'));
    System::Console::WriteLine("compare(L'a', L'b') = {0}",
        vcomp(L'a', L'b'));
    System::Console::WriteLine("compare(L'b', L'a') = {0}",
        vcomp(L'b', L'a'));
    System::Console::WriteLine();

    // test a different ordering rule
    Mypriority_queue c2 = cliext::greater<wchar_t>();
    vcomp = c2.value_comp();

    System::Console::WriteLine("compare(L'a', L'a') = {0}",
        vcomp(L'a', L'a'));
    System::Console::WriteLine("compare(L'a', L'b') = {0}",
        vcomp(L'a', L'b'));
    System::Console::WriteLine("compare(L'b', L'a') = {0}",
        vcomp(L'b', L'a'));
    return (0);
    }
compare(L'a', L'a') = False
compare(L'a', L'b') = True
compare(L'b', L'a') = False

compare(L'a', L'a') = False
compare(L'a', L'b') = False
compare(L'b', L'a') = True

priority_queue::value_type (STL/CLR)

Jenis elemen.

Sintaks

typedef Value value_type;

Keterangan

Jenisnya adalah sinonim untuk parameter templat Nilai.

Contoh

// cliext_priority_queue_value_type.cpp
// compile with: /clr
#include <cliext/queue>

typedef cliext::priority_queue<wchar_t> Mypriority_queue;
int main()
    {
    Mypriority_queue c1;
    c1.push(L'a');
    c1.push(L'b');
    c1.push(L'c');

    // display reversed contents " a b c" using value_type
    for (; !c1.empty(); c1.pop())
        {   // store element in value_type object
        Mypriority_queue::value_type val = c1.top();

        System::Console::Write("{0} ", val);
        }
    System::Console::WriteLine();
    return (0);
    }
c b a