Delen via


priority_queue (STL/CLR)

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