Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de sjabloonklasse wordt een object beschreven waarmee een geordende volgorde van elementen met beperkte toegang wordt bepaald. U gebruikt de containeradapter priority_queue om een onderliggende container te beheren als een prioriteitswachtrij.
In de onderstaande GValue beschrijving is hetzelfde als waarde , tenzij de laatste een verwijzingstype is, in dat geval Value^. Is op dezelfde manier GContainer hetzelfde als container , tenzij de laatste een ref-type is, in welk geval het geval is Container^.
Syntaxis
template<typename Value,
typename Container>
ref class priority_queue
System::ICloneable,
Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
{ ..... };
Parameterwaarden
Waarde
Het type element in de gecontroleerde reeks.
Container
Het type van de onderliggende container.
Requirements
Rubriek:<cliext/queue>
Naamruimte: cliext
Verklaringen
| Typedefinitie | Description |
|---|---|
| priority_queue::const_reference (STL/CLR) | Het type constante verwijzing naar een element. |
| priority_queue::container_type (STL/CLR) | Het type van de onderliggende container. |
| priority_queue::d deductietype (STL/CLR) | Het type ondertekende afstand tussen twee elementen. |
| priority_queue::generic_container (STL/CLR) | Het type van de algemene interface voor de containeradapter. |
| priority_queue::generic_value (STL/CLR) | Het type element voor de algemene interface voor de containeradapter. |
| priority_queue::reference (STL/CLR) | Het type verwijzing naar een element. |
| priority_queue::size_type (STL/CLR) | Het type ondertekende afstand tussen twee elementen. |
| priority_queue::value_compare (STL/CLR) | De ordenendelegen voor twee elementen. |
| priority_queue::value_type (STL/CLR) | Het type element. |
| Lid, functie | Description |
|---|---|
| priority_queue::assign (STL/CLR) | Vervangt alle elementen. |
| priority_queue::empty (STL/CLR) | Test of er geen elementen aanwezig zijn. |
| priority_queue::get_container (STL/CLR) | Hiermee opent u de onderliggende container. |
| priority_queue::p op (STL/CLR) | Hiermee verwijdert u het hghest-priority element. |
| priority_queue::p riority_queue (STL/CLR) | Maakt een containerobject. |
| priority_queue::p ush (STL/CLR) | Hiermee voegt u een nieuw element toe. |
| priority_queue::size (STL/CLR) | Telt het aantal elementen. |
| priority_queue::top (STL/CLR) | Hiermee opent u het element met de hoogste prioriteit. |
| priority_queue::to_array (STL/CLR) | Hiermee kopieert u de gecontroleerde reeks naar een nieuwe matrix. |
| priority_queue::value_comp (STL/CLR) | Kopieert de ordenendelegen voor twee elementen. |
| Vastgoed | Description |
|---|---|
| priority_queue::top_item (STL/CLR) | Hiermee opent u het element met de hoogste prioriteit. |
| Operator | Description |
|---|---|
| priority_queue::operator= (STL/CLR) | Vervangt de gecontroleerde volgorde. |
Koppelvlakken
| gebruikersinterface | Description |
|---|---|
| ICloneable | Een object dupliceren. |
| IPriorityQueue<Value, Container> | Algemene containeradapter onderhouden. |
Opmerkingen
Het object wijst en maakt opslag vrij voor de volgorde die het beheert via een onderliggende container, van het type Container, die elementen opslaat Value en op aanvraag groeit. Hiermee wordt de volgorde gerangschikt als een heap, met het element met de hoogste prioriteit (het bovenste element) dat gemakkelijk toegankelijk en verwisselbaar is. Het object beperkt de toegang tot het pushen van nieuwe elementen en het poppen van alleen het element met de hoogste prioriteit, waarbij een prioriteitswachtrij wordt geïmplementeerd.
Het object rangorde de volgorde die het beheert door een opgeslagen gemachtigde object van het type priority_queue::value_compare (STL/CLR) aan te roepen. U kunt het opgeslagen gedelegeerde-object opgeven wanneer u de priority_queue maakt; als u geen gemachtigdenobject opgeeft, is de standaardwaarde de vergelijking operator<(value_type, value_type). U opent dit opgeslagen object door de lidfunctie aan te roepen priority_queue::value_comp (STL/CLR)().
Een dergelijk gemachtigde object moet een strikte zwakke volgorde opleggen aan waarden van het type priority_queue::value_type (STL/CLR). Dat betekent dat voor twee sleutels X en Y:
value_comp()(X, Y) retourneert hetzelfde Booleaanse resultaat voor elke aanroep.
Als value_comp()(X, Y) waar is, moet dit value_comp()(Y, X) onwaar zijn.
Als value_comp()(X, Y) waar is, X dan wordt gezegd dat ze eerder Yworden besteld .
Als !value_comp()(X, Y) && !value_comp()(Y, X) waar is, X dan en Y worden gezegd dat ze gelijkwaardige volgorde hebben.
Voor elk element X dat voorafgaat aan Y de gecontroleerde reeks, key_comp()(Y, X) is onwaar. (Voor het standaardobject voor gedelegeerden nemen sleutels nooit af in waarde.)
Het element met de hoogste prioriteit is dus een van de elementen die niet vóór een ander element worden geordend.
Omdat de onderliggende container elementen als een heap geordend houdt:
De container moet iterators voor willekeurige toegang ondersteunen.
Elementen met gelijkwaardige volgorde kunnen in een andere volgorde worden weergegeven dan ze zijn gepusht. (De volgorde is niet stabiel.)
Kandidaten voor de onderliggende container bevatten dus deque (STL/CLR) en vector (STL/CLR).
Members
priority_queue::assign (STL/CLR)
Vervangt alle elementen.
Syntaxis
void assign(priority_queue<Value, Container>% right);
Parameterwaarden
Rechts
Containeradapter die moet worden ingevoegd.
Opmerkingen
De lidfunctie wordt toegewezen aan right.get_container() de onderliggende container. U kunt deze gebruiken om de volledige inhoud van de wachtrij te wijzigen.
Example
// 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)
Het type constante verwijzing naar een element.
Syntaxis
typedef value_type% const_reference;
Opmerkingen
Het type beschrijft een constante verwijzing naar een element.
Example
// 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)
Het type van de onderliggende container.
Syntaxis
typedef Container value_type;
Opmerkingen
Het type is een synoniem voor de sjabloonparameter Container.
Example
// 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 deductietype (STL/CLR)
De typen van een ondertekende afstand tussen twee elementen.
Syntaxis
typedef int difference_type;
Opmerkingen
Het type beschrijft mogelijk een negatief aantal elementen.
Example
// 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)
Test of er geen elementen aanwezig zijn.
Syntaxis
bool empty();
Opmerkingen
De lidfunctie retourneert waar voor een lege beheerde reeks. Het is gelijk aan priority_queue::size (STL/CLR)() == 0. U gebruikt deze om te testen of de priority_queue leeg is.
Example
// 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)
Het type van de algemene interface voor de container.
Syntaxis
typedef Microsoft::VisualC::StlClr::IPriorityQueue<Value>
generic_container;
Opmerkingen
Het type beschrijft de algemene interface voor deze containeradapterklasse van de sjabloon.
Example
// 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)
Het type element dat moet worden gebruikt met de algemene interface voor de container.
Syntaxis
typedef GValue generic_value;
Opmerkingen
Het type beschrijft een object van het type GValue dat de waarde van het opgeslagen element beschrijft voor gebruik met de algemene interface voor deze sjablooncontainerklasse. (GValue is ofwel value_typevalue_type^value_type een verwijzingstype.)
Example
// 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)
Hiermee opent u de onderliggende container.
Syntaxis
container_type get_container();
Opmerkingen
De lidfunctie retourneert de onderliggende container. U gebruikt deze om de beperkingen te omzeilen die door de container-wrapper worden opgelegd.
Example
// 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)
Vervangt de gecontroleerde volgorde.
Syntaxis
priority_queue <Value, Container>% operator=(priority_queue <Value, Container>% right);
Parameterwaarden
Rechts
Containeradapter die moet worden gekopieerd.
Opmerkingen
De lidoperator kopieert rechtstreeks naar het object en retourneert *this. U gebruikt deze om de gecontroleerde reeks te vervangen door een kopie van de gecontroleerde reeks rechts.
Example
// 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)
Hiermee verwijdert u het hoogste proiriteitselement.
Syntaxis
void pop();
Opmerkingen
De lidfunctie verwijdert het element met de hoogste prioriteit van de gecontroleerde reeks, dat niet leeg moet zijn. U kunt deze gebruiken om de wachtrij met één element aan de achterkant te verkorten.
Example
// 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)
Maakt een containeradapterobject.
Syntaxis
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);
Parameterwaarden
Cont
Te kopiëren container.
first
Begin van het bereik dat moet worden ingevoegd.
last
Einde van het bereik dat moet worden ingevoegd.
Pred
Rangschikkend predicaat voor de gecontroleerde volgorde.
Rechts
Object of bereik dat moet worden ingevoegd.
Opmerkingen
De constructor:
priority_queue();
maakt een lege verpakte container met het standaardvolgordepredicaat. U gebruikt deze om een lege initiële gecontroleerde volgorde op te geven, met het standaardvoorvoegkundig predicaat voor volgorde.
De constructor:
priority_queue(priority_queue<Value, Container>% right);
maakt een verpakte container die een kopie is van right.get_container(), met het bestelpredicaat right.value_comp(). U gebruikt deze om een eerste gecontroleerde reeks op te geven die een kopie is van de reeks die wordt beheerd door het wachtrijobject rechts, met hetzelfde volgordepredicaat.
De constructor:
priority_queue(priority_queue<Value, Container>^ right);
maakt een verpakte container die een kopie is van right->get_container(), met het bestelpredicaat right->value_comp(). U gebruikt deze om een initiële beheerde reeks op te geven die een kopie is van de reeks die wordt beheerd door het wachtrijobject *right, met hetzelfde volgordepredicaat.
De constructor:
explicit priority_queue(value_compare^ pred);
maakt een lege verpakte container met het predicaat predicaat van de volgorde. U gebruikt deze om een lege initiële gecontroleerde reeks op te geven, met het opgegeven rangschikkend predicaat.
De constructor:
priority_queue(value_compare^ pred, container_type cont);
maakt een lege verpakte container, met het rangschikkenpredicaat pred, en pusht vervolgens alle elementen van cont U gebruikt deze om een eerste gecontroleerde reeks van een bestaande container op te geven, met het opgegeven volgordepredicaat.
De constructor:
template<typename InIt> priority_queue(InIt first, InIt last);
maakt een lege verpakte container, met het standaardvolgordepredicaat en pusht vervolgens de reeks [first, last). U gebruikt deze om een initiële beheerde reeks op te geven van een opgegeven reeks, met het opgegeven rangschikkend predicaat.
De constructor:
template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred);
maakt een lege verpakte container, met het predicaat voor de volgorde , en pusht vervolgens de reeks [first, last). U gebruikt deze om een initiële beheerde reeks op te geven van een opgegeven reeks, met het opgegeven rangschikkend predicaat.
De constructor:
template<typename InIt> priority_queue(InIt first, InIt last, value_compare^ pred, container_type% cont);
maakt een lege verpakte container, met het predicaat predicaat van de volgorde, en pusht vervolgens alle elementen van cont plus de reeks [first, last). U gebruikt deze om een initiële beheerde reeks op te geven van een bestaande container en een opgegeven reeks, met het opgegeven rangschikkend predicaat.
Example
// 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)
Hiermee voegt u een nieuw element toe.
Syntaxis
void push(value_type val);
Opmerkingen
De lidfunctie voegt een element met waarde val in de gecontroleerde volgorde in en rangschikt de gecontroleerde reeks opnieuw om de heap-discipline te behouden. U gebruikt dit om nog een element aan de wachtrij toe te voegen.
Example
// 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)
Het type verwijzing naar een element.
Syntaxis
typedef value_type% reference;
Opmerkingen
Het type beschrijft een verwijzing naar een element.
Example
// 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)
Telt het aantal elementen.
Syntaxis
size_type size();
Opmerkingen
De lidfunctie retourneert de lengte van de gecontroleerde reeks. U gebruikt deze om het aantal elementen te bepalen dat zich momenteel in de gecontroleerde volgorde bevindt. Zie priority_queue::empty (STL/CLR)() als u alleen wilt weten of de reeks een niet-nulgrootte heeft.
Example
// 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)
Het type ondertekende afstand tussen twee elementen.
Syntaxis
typedef int size_type;
Opmerkingen
Het type beschrijft een niet-negatief aantal elementen.
Example
// 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)
Hiermee kopieert u de gecontroleerde reeks naar een nieuwe matrix.
Syntaxis
cli::array<Value>^ to_array();
Opmerkingen
De lidfunctie retourneert een matrix die de gecontroleerde reeks bevat. U gebruikt deze om een kopie van de gecontroleerde reeks in matrixvorm te verkrijgen.
Example
// 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)
Hiermee opent u het element met de hoogste prioriteit.
Syntaxis
reference top();
Opmerkingen
De lidfunctie retourneert een verwijzing naar het bovenste element (hoogste prioriteit) van de gecontroleerde reeks, die niet leeg moet zijn. U gebruikt het om toegang te krijgen tot het element met de hoogste prioriteit, wanneer u weet dat het bestaat.
Example
// 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)
Hiermee opent u het element met de hoogste prioriteit.
Syntaxis
property value_type back_item;
Opmerkingen
De eigenschap heeft toegang tot het bovenste element (hoogste prioriteit) van de gecontroleerde reeks, die niet leeg moet zijn. U gebruikt het om het element met de hoogste prioriteit te lezen of te schrijven, wanneer u weet dat het bestaat.
Example
// 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)
Kopieert de ordenendelegen voor twee elementen.
Syntaxis
value_compare^ value_comp();
Opmerkingen
De lidfunctie retourneert de ordenende die wordt gebruikt om de gecontroleerde volgorde te ordenen. U gebruikt deze om twee waarden te vergelijken.
Example
// 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)
De ordenendelegen voor twee waarden.
Syntaxis
binary_delegate<value_type, value_type, int> value_compare;
Opmerkingen
Het type is een synoniem voor de gemachtigde die bepaalt of het eerste argument vóór de tweede wordt geordend.
Example
// 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)
Het type element.
Syntaxis
typedef Value value_type;
Opmerkingen
Het type is een synoniem voor de parameterwaarde van de sjabloon.
Example
// 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