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 Container
templat .
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 *right
antrean , 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