priority_queue (STL/CLR)
Şablon sınıfı, sınırlı erişimi olan öğelerin değişen uzunlukta sıralı dizisini denetleen bir nesneyi açıklar. Temel alınan kapsayıcıyı öncelik sırası olarak yönetmek için kapsayıcı bağdaştırıcısını priority_queue
kullanırsınız.
Aşağıdaki açıklamada, GValue
ikincisi bir başvuru türü olmadığı sürece Değer ile aynıdır; bu durumda olurValue^
. Benzer şekilde, GContainer
ikincisi bir başvuru türü olmadığı sürece Kapsayıcı ile aynıdır ve bu durumda olurContainer^
.
Sözdizimi
template<typename Value,
typename Container>
ref class priority_queue
System::ICloneable,
Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
{ ..... };
Parametreler
Value
Denetlenen sıradaki öğenin türü.
Kapsayıcı
Temel alınan kapsayıcının türü.
Gereksinimler
Üst bilgi:<cliext/queue>
Ad alanı: cliext
Bildirimler
Tür Tanımı | Açıklama |
---|---|
priority_queue::const_reference (STL/CLR) | Bir öğe için sabit bir başvuru türü. |
priority_queue::container_type (STL/CLR) | Temel alınan kapsayıcının türü. |
priority_queue::difference_type (STL/CLR) | İki öğe arasındaki işaretli mesafenin türü. |
priority_queue::generic_container (STL/CLR) | Kapsayıcı bağdaştırıcısı için genel arabirimin türü. |
priority_queue::generic_value (STL/CLR) | Kapsayıcı bağdaştırıcısının genel arabirimi için bir öğenin türü. |
priority_queue::reference (STL/CLR) | Bir öğe için bir başvuru türü. |
priority_queue::size_type (STL/CLR) | İki öğe arasındaki işaretli mesafenin türü. |
priority_queue::value_compare (STL/CLR) | İki öğe için sıralama temsilcisi. |
priority_queue::value_type (STL/CLR) | Öğenin türü. |
Üye İşlevi | Açıklama |
---|---|
priority_queue::assign (STL/CLR) | Tüm öğeleri değiştirir. |
priority_queue::empty (STL/CLR) | Bir öğe olup olmadığını sınar. |
priority_queue::get_container (STL/CLR) | Temel kapsayıcıya erişir. |
priority_queue::pop (STL/CLR) | hghest-priority öğesini kaldırır. |
priority_queue::priority_queue (STL/CLR) | Bir kapsayıcı nesnesi oluşturur. |
priority_queue::push (STL/CLR) | Yeni bir öğe ekler. |
priority_queue::size (STL/CLR) | Öğe sayısını sayar. |
priority_queue::top (STL/CLR) | En yüksek öncelikli öğeye erişir. |
priority_queue::to_array (STL/CLR) | Denetimli diziyi yeni bir diziye kopyalar. |
priority_queue::value_comp (STL/CLR) | İki öğe için sıralama temsilcisini kopyalar. |
Özellik | Açıklama |
---|---|
priority_queue::top_item (STL/CLR) | En yüksek öncelikli öğeye erişir. |
Operator | Açıklama |
---|---|
priority_queue::operator= (STL/CLR) | Denetimli sıranın yerini alır. |
Arabirimler
Arabirim | Açıklama |
---|---|
ICloneable | Nesneyi çoğaltma. |
IPriorityQueue<Değeri, Kapsayıcı> | Genel kapsayıcı bağdaştırıcısını koruyun. |
Açıklamalar
nesnesi, öğeleri depolayan Value
ve isteğe bağlı olarak büyüyen, türündeki Container
bir temel kapsayıcı aracılığıyla denetlediği sıra için depolama ayırır ve serbesttir. Sırayı yığın olarak sıralı tutar ve en yüksek öncelikli öğe (en üst öğe) erişilebilir ve çıkarılabilir durumda olur. nesnesi, erişimi yeni öğeler göndermeye ve yalnızca en yüksek öncelikli öğeyi kullanıma seçerek öncelik kuyruğu uygulamayla kısıtlar.
nesnesi, priority_queue::value_compare (STL/CLR) türünde bir saklı temsilci nesnesi çağırarak denetlediği sırayı sıralar. priority_queue oluştururken depolanan temsilci nesnesini belirtebilirsiniz; temsilci nesnesi belirtmezseniz, varsayılan karşılaştırmadır operator<(value_type, value_type)
. Bu depolanan nesneye erişmek için priority_queue::value_comp (STL/CLR)()
üye işlevini çağırırsınız.
Böyle bir temsilci nesnesi, priority_queue::value_type (STL/CLR) türündeki değerlere katı bir zayıf sıralama uygulamalıdır. Başka bir deyişle, iki anahtar X
ve Y
için:
value_comp()(X, Y)
her çağrıda aynı Boole sonucunu döndürür.
value_comp()(X, Y)
True ise false value_comp()(Y, X)
olmalıdır.
True value_comp()(X, Y)
ise, X
öncesinde Y
sıralanmış olduğu söylenir.
True !value_comp()(X, Y) && !value_comp()(Y, X)
ise ve X
Y
eşdeğer sıralamaya sahip olduğu söylenir.
Denetimli diziden key_comp()(Y, X)
önce Y
gelen herhangi bir öğe X
için false değeridir. (Varsayılan temsilci nesnesi için anahtarlar hiçbir zaman değerde azalmaz.)
Bu nedenle en yüksek öncelikli öğe, başka bir öğeden önce sıralanmayan öğelerden biridir.
Temel kapsayıcı öğeleri yığın olarak sıralı tuttuğundan:
Kapsayıcının rastgele erişim yineleyicilerini desteklemesi gerekir.
Eşdeğer sıralamaya sahip öğeler, gönderildiklerinden farklı bir sırayla oluşturulabilir. (Sıralama kararlı değil.)
Bu nedenle, temel kapsayıcı adayları deque (STL/CLR) ve vektör (STL/CLR) içerir.
Üyeler
priority_queue::assign (STL/CLR)
Tüm öğeleri değiştirir.
Sözdizimi
void assign(priority_queue<Value, Container>% right);
Parametreler
Sağ
Eklenecek kapsayıcı bağdaştırıcısı.
Açıklamalar
Üye işlevi, temel alınan kapsayıcıya atar right.get_container()
. Kuyruğun tüm içeriğini değiştirmek için bunu kullanırsınız.
Örnek
// 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)
Bir öğe için sabit bir başvuru türü.
Sözdizimi
typedef value_type% const_reference;
Açıklamalar
türü, bir öğeye sabit başvuruyu açıklar.
Örnek
// 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)
Temel alınan kapsayıcının türü.
Sözdizimi
typedef Container value_type;
Açıklamalar
türü, şablon parametresi Container
için bir eş anlamlıdır.
Örnek
// 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::difference_type (STL/CLR)
İki öğe arasındaki imzalı uzaklık türleri.
Sözdizimi
typedef int difference_type;
Açıklamalar
Türü, büyük olasılıkla negatif öğe sayısını açıklar.
Örnek
// 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)
Bir öğe olup olmadığını sınar.
Sözdizimi
bool empty();
Açıklamalar
Üye işlevi boş denetimli bir dizi için true döndürür. priority_queue::size (STL/CLR)() == 0
ile eşdeğerdir. priority_queue boş olup olmadığını test etmek için bunu kullanırsınız.
Örnek
// 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)
Kapsayıcı için genel arabirimin türü.
Sözdizimi
typedef Microsoft::VisualC::StlClr::IPriorityQueue<Value>
generic_container;
Açıklamalar
türü, bu şablon kapsayıcı bağdaştırıcısı sınıfı için genel arabirimi açıklar.
Örnek
// 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)
Kapsayıcının genel arabirimiyle kullanılacak bir öğenin türü.
Sözdizimi
typedef GValue generic_value;
Açıklamalar
türü, bu şablon kapsayıcı sınıfı için genel arabirimle kullanılmak üzere depolanan öğe değerini açıklayan türdeki GValue
bir nesneyi açıklar. (GValue
veya value_type^
bir başvuru türüysevalue_type
.)value_type
Örnek
// 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)
Temel kapsayıcıya erişir.
Sözdizimi
container_type get_container();
Açıklamalar
Üye işlevi temel kapsayıcıyı döndürür. Kapsayıcı sarmalayıcısı tarafından uygulanan kısıtlamaları atlamak için bunu kullanırsınız.
Örnek
// 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)
Denetimli sıranın yerini alır.
Sözdizimi
priority_queue <Value, Container>% operator=(priority_queue <Value, Container>% right);
Parametreler
Sağ
Kopyalanacak kapsayıcı bağdaştırıcısı.
Açıklamalar
Üye işleci doğrudan nesnesine kopyalanır ve döndürür*this
. Bunu, denetimli sırayı sağda denetimli sıranın bir kopyasıyla değiştirmek için kullanırsınız.
Örnek
// 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::pop (STL/CLR)
En yüksek proirity öğesini kaldırır.
Sözdizimi
void pop();
Açıklamalar
Üye işlevi, denetlenen sıranın en yüksek öncelikli öğesini kaldırır ve bu öğe boş olmamalıdır. Kuyruğu arkadaki bir öğeye göre kısaltmak için bunu kullanırsınız.
Örnek
// 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::priority_queue (STL/CLR)
Kapsayıcı bağdaştırıcısı nesnesi oluşturur.
Sözdizimi
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);
Parametreler
Devam
Kopyalanacak kapsayıcı.
birinci
Eklenecek aralığın başlangıcı.
son
Eklenecek aralık sonu.
Pred
Denetlenen sıra için sıralama koşulu.
Sağ
Eklenecek nesne veya aralık.
Açıklamalar
Oluşturucu:
priority_queue();
, varsayılan sıralama koşuluyla boş bir sarmalanmış kapsayıcı oluşturur. Varsayılan sıralama koşuluyla boş bir ilk denetimli sıra belirtmek için bunu kullanırsınız.
Oluşturucu:
priority_queue(priority_queue<Value, Container>% right);
, sipariş koşuluyla right.value_comp()
bir kopyası right.get_container()
olan sarmalanmış bir kapsayıcı oluşturur. Bunu, aynı sıralama koşuluyla sıra nesnesi tarafından denetlenen sıranın bir kopyası olan ilk denetimli bir dizi belirtmek için kullanırsınız.
Oluşturucu:
priority_queue(priority_queue<Value, Container>^ right);
, sipariş koşuluyla right->value_comp()
bir kopyası right->get_container()
olan sarmalanmış bir kapsayıcı oluşturur. Bunu, aynı sıralama koşuluna sahip kuyruk nesnesi *right
tarafından denetlenen sıranın bir kopyası olan ilk denetimli diziyi belirtmek için kullanırsınız.
Oluşturucu:
explicit priority_queue(value_compare^ pred);
, sıralama koşuluyla birlikte boş bir sarmalanmış kapsayıcı oluşturur. Belirtilen sıralama koşuluyla boş bir ilk denetimli sıra belirtmek için bunu kullanırsınız.
Oluşturucu:
priority_queue(value_compare^ pred, container_type cont);
boş bir sarmalanmış kapsayıcı oluşturur, sıralama koşulu koşuluyla birlikte, ardından tüm sabit öğelerini iter Bunu, belirtilen sıralama koşuluyla var olan bir kapsayıcıdan ilk denetimli diziyi belirtmek için kullanırsınız.
Oluşturucu:
template<typename InIt> priority_queue(InIt first, InIt last);
varsayılan sıralama koşuluyla boş bir sarmalanmış kapsayıcı oluşturur, ardından [first
, last
) dizisini iletir. Belirtilen sıralama koşuluyla belirtilen bir eqeuence'tan ilk denetimli diziyi belirtmek için bunu kullanırsınız.
Oluşturucu:
template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred);
boş bir sarmalanmış kapsayıcı oluşturur ve sıralama koşulu önceden belirlenir ve [first
, last
) dizisini iletir. Belirtilen sıralama koşuluyla belirtilen bir seqeuence'tan ilk denetimli diziyi belirtmek için bunu kullanırsınız.
Oluşturucu:
template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred, container_type% cont);
, sıralama koşulu önceden oluşturulmuş boş bir sarmalanmış kapsayıcı oluşturur, ardından tüm cont öğelerini ve [first
, last
) dizisini iter. Bunu, mevcut bir kapsayıcıdan ilk denetimli sırayı ve belirtilen sıralama koşuluyla belirtilen bir seqeuence belirtmek için kullanırsınız.
Örnek
// 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::push (STL/CLR)
Yeni bir öğe ekler.
Sözdizimi
void push(value_type val);
Açıklamalar
Üye işlevi, denetlenen diziye değer val
içeren bir öğe ekler ve yığın uzmanlık alanını korumak için denetlenen diziyi yeniden sıralar. Kuyruğa başka bir öğe eklemek için bunu kullanırsınız.
Örnek
// 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)
Bir öğe için bir başvuru türü.
Sözdizimi
typedef value_type% reference;
Açıklamalar
türü, bir öğeye başvuruyu açıklar.
Örnek
// 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)
Öğe sayısını sayar.
Sözdizimi
size_type size();
Açıklamalar
Üye işlevi, denetlenen sıranın uzunluğunu döndürür. Şu anda denetimli dizideki öğelerin sayısını belirlemek için bunu kullanırsınız. Tek ilgilendiğiniz dizinin sıfır olmayan bir boyuta sahip olup olmadığıysa bkz . priority_queue::empty (STL/CLR)()
.
Örnek
// 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)
İki öğe arasındaki imzalı uzaklık türü.
Sözdizimi
typedef int size_type;
Açıklamalar
Türü negatif olmayan öğe sayısını açıklar.
Örnek
// 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)
Denetimli diziyi yeni bir diziye kopyalar.
Sözdizimi
cli::array<Value>^ to_array();
Açıklamalar
üye işlevi, denetlenen diziyi içeren bir dizi döndürür. Denetimli sıranın bir kopyasını dizi biçiminde almak için bunu kullanırsınız.
Örnek
// 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)
En yüksek öncelikli öğeye erişir.
Sözdizimi
reference top();
Açıklamalar
Üye işlevi, denetlenen sıranın en üst (en yüksek öncelikli) öğesine bir başvuru döndürür ve bu öğe boş olmamalıdır. Var olduğunu bildiğinizde en yüksek öncelikli öğeye erişmek için bunu kullanırsınız.
Örnek
// 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)
En yüksek öncelikli öğeye erişir.
Sözdizimi
property value_type back_item;
Açıklamalar
özelliği, denetimli dizinin en üst (en yüksek öncelikli) öğesine erişir ve bu öğe boş olmamalıdır. Var olduğunu bildiğinizde, en yüksek öncelikli öğeyi okumak veya yazmak için bunu kullanırsınız.
Örnek
// 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)
İki öğe için sıralama temsilcisini kopyalar.
Sözdizimi
value_compare^ value_comp();
Açıklamalar
Üye işlevi, denetlenen sırayı sıralamak için kullanılan sıralama temsilcisini döndürür. bunu iki değeri karşılaştırmak için kullanırsınız.
Örnek
// 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)
İki değer için sıralama temsilcisi.
Sözdizimi
binary_delegate<value_type, value_type, int> value_compare;
Açıklamalar
türü, temsilcinin ilk bağımsız değişkenin ikinciden önce sıralanıp sıralı olmadığını belirleyen bir eş anlamlıdır.
Örnek
// 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)
Öğenin türü.
Sözdizimi
typedef Value value_type;
Açıklamalar
Tür, Value şablon parametresinin eş anlamlısıdır.
Örnek
// 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