priority_queue (STL/CLR)

La clase de plantilla describe un objeto que controla una secuencia ordenada de longitud variable de elementos que tiene acceso limitado. El adaptador de contenedor se usa priority_queue para administrar un contenedor subyacente como cola de prioridad.

En la descripción siguiente, es GValue igual que Value a menos que el último sea un tipo ref, en cuyo caso es Value^. Del mismo modo, GContainer es igual que Container a menos que este último sea un tipo ref, en cuyo caso es Container^.

Sintaxis

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

Parámetros

Valor
Tipo de un elemento de la secuencia controlada.

Contenedor
Tipo del contenedor subyacente.

Requisitos

Rúbrica:< cliext/queue>

Espacio de nombres: cliext

Declaraciones

Definición de tipo Descripción
priority_queue::const_reference (STL/CLR) El tipo de una referencia constante a un elemento.
priority_queue::container_type (STL/CLR) Tipo del contenedor subyacente.
priority_queue::difference_type (STL/CLR) El tipo de una distancia con signo entre dos elementos.
priority_queue::generic_container (STL/CLR) Tipo de la interfaz genérica para el adaptador de contenedor.
priority_queue::generic_value (STL/CLR) Tipo de un elemento para la interfaz genérica para el adaptador de contenedor.
priority_queue::reference (STL/CLR) El tipo de una referencia a un elemento.
priority_queue::size_type (STL/CLR) El tipo de una distancia con signo entre dos elementos.
priority_queue::value_compare (STL/CLR) Delegado de ordenación para dos elementos.
priority_queue::value_type (STL/CLR) El tipo de un elemento.
Función miembro Descripción
priority_queue::assign (STL/CLR) Reemplaza todos los elementos.
priority_queue::empty (STL/CLR) Comprueba si no hay ningún elemento presente.
priority_queue::get_container (STL/CLR) Tiene acceso al contenedor subyacente.
priority_queue::pop (STL/CLR) Quita el elemento de prioridad más alta.
priority_queue::priority_queue (STL/CLR) Construye un objeto contenedor.
priority_queue::push (STL/CLR) Agrega un nuevo elemento.
priority_queue::size (STL/CLR) Cuenta el número de elementos.
priority_queue::top (STL/CLR) Accede al elemento de prioridad más alta.
priority_queue::to_array (STL/CLR) Copia la secuencia controlada en una nueva matriz.
priority_queue::value_comp (STL/CLR) Copia el delegado de ordenación de dos elementos.
Propiedad Descripción
priority_queue::top_item (STL/CLR) Accede al elemento de prioridad más alta.
Operador Descripción
priority_queue::operator= (STL/CLR) Reemplaza la secuencia controlada.

Interfaces

Interfaz Descripción
ICloneable Duplique un objeto .
IPriorityQueueValue<, Contenedor> Mantenga el adaptador de contenedor genérico.

Comentarios

El objeto asigna y libera almacenamiento para la secuencia que controla a través de un contenedor subyacente, Containerde tipo , Value que almacena elementos y crece a petición. Mantiene la secuencia ordenada como un montón, con el elemento de prioridad más alta (el elemento superior) fácilmente accesible y extraíble. El objeto restringe el acceso a insertar nuevos elementos y sacar solo el elemento de prioridad más alta, implementando una cola de prioridad.

El objeto ordena la secuencia que controla mediante una llamada a un objeto delegado almacenado de tipo priority_queue::value_compare (STL/CLR). Puede especificar el objeto delegado almacenado al construir el priority_queue; si no especifica ningún objeto delegado, el valor predeterminado es la comparación operator<(value_type, value_type). Para acceder a este objeto almacenado, llame a la función miembro priority_queue::value_comp (STL/CLR)().

Este tipo de objeto delegado debe imponer una ordenación débil estricta en los valores de tipo priority_queue::value_type (STL/CLR). Es decir, para dos claves cualquiera y XY:

value_comp()(X, Y) devuelve el mismo resultado booleano en cada llamada.

Si value_comp()(X, Y) es true, debe value_comp()(Y, X) ser false.

Si value_comp()(X, Y) es true, se dice X que se ordena antes de Y.

Si !value_comp()(X, Y) && !value_comp()(Y, X) es true, se dice X que y Y tienen una ordenación equivalente.

Para cualquier elemento X que precede en Y la secuencia controlada, key_comp()(Y, X) es false. (Para el objeto delegado predeterminado, las claves nunca disminuyen en valor).

El elemento de prioridad más alta es, por tanto, uno de los elementos que no se ordena antes que ningún otro elemento.

Puesto que el contenedor subyacente mantiene los elementos ordenados como un montón:

El contenedor debe admitir iteradores de acceso aleatorio.

Los elementos con una ordenación equivalente se pueden sacar en un orden diferente al que se insertaron. (La ordenación no es estable).

Por lo tanto, los candidatos para el contenedor subyacente incluyen deque (STL/CLR) y vector (STL/CLR).

Miembros

priority_queue::assign (STL/CLR)

Reemplaza todos los elementos.

Sintaxis

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

Parámetros

right
Adaptador de contenedor que se insertará.

Comentarios

La función miembro asigna al right.get_container() contenedor subyacente. Se usa para cambiar todo el contenido de la cola.

Ejemplo

// 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)

El tipo de una referencia constante a un elemento.

Sintaxis

typedef value_type% const_reference;

Comentarios

El tipo describe una referencia constante a un elemento.

Ejemplo

// 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)

Tipo del contenedor subyacente.

Sintaxis

typedef Container value_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla Container.

Ejemplo

// 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)

Tipos de una distancia con firma entre dos elementos.

Sintaxis

typedef int difference_type;

Comentarios

El tipo describe un recuento de elementos posiblemente negativo.

Ejemplo

// 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)

Comprueba si no hay ningún elemento presente.

Sintaxis

bool empty();

Comentarios

La función miembro devuelve true para una secuencia controlada vacía. Es equivalente a priority_queue::size (STL/CLR)() == 0. Se usa para probar si el priority_queue está vacío.

Ejemplo

// 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)

Tipo de la interfaz genérica para el contenedor.

Sintaxis

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

Comentarios

El tipo describe la interfaz genérica para esta clase de adaptador de contenedor de plantillas.

Ejemplo

// 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)

Tipo de un elemento para su uso con la interfaz genérica para el contenedor.

Sintaxis

typedef GValue generic_value;

Comentarios

El tipo describe un objeto de tipo GValue que describe el valor del elemento almacenado para su uso con la interfaz genérica para esta clase contenedora de plantillas. (GValue es o value_type si value_type^ es value_type un tipo ref).

Ejemplo

// 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)

Tiene acceso al contenedor subyacente.

Sintaxis

container_type get_container();

Comentarios

La función miembro devuelve el contenedor subyacente. Se usa para omitir las restricciones impuestas por el contenedor de contenedores.

Ejemplo

// 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)

Reemplaza la secuencia controlada.

Sintaxis

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

Parámetros

right
Adaptador de contenedor que se copiará.

Comentarios

El operador miembro copia directamente en el objeto y, a continuación, devuelve *this. Se usa para reemplazar la secuencia controlada por una copia de la secuencia controlada a la derecha.

Ejemplo

// 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)

Quita el elemento de mayor proiridad.

Sintaxis

void pop();

Comentarios

La función miembro quita el elemento de prioridad más alta de la secuencia controlada, que no debe estar vacío. Se usa para acortar la cola en un elemento en la parte posterior.

Ejemplo

// 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)

Construye un objeto de adaptador de contenedor.

Sintaxis

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);

Parámetros

Cont
Contenedor que se va a copiar.

first
Principio del intervalo que se va a insertar.

last
Final del intervalo que se va a insertar.

Pred
Predicado de ordenación para la secuencia controlada.

right
Objeto o intervalo que se va a insertar.

Comentarios

Constructor:

priority_queue();

crea un contenedor encapsulado vacío, con el predicado de ordenación predeterminado. Se usa para especificar una secuencia controlada inicial vacía, con el predicado de ordenación predeterminado.

Constructor:

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

crea un contenedor encapsulado que es una copia de right.get_container(), con el predicado de ordenación right.value_comp(). Se usa para especificar una secuencia controlada inicial que es una copia de la secuencia controlada por el derecho de objeto de cola, con el mismo predicado de ordenación.

Constructor:

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

crea un contenedor encapsulado que es una copia de right->get_container(), con el predicado de ordenación right->value_comp(). Se usa para especificar una secuencia controlada inicial que es una copia de la secuencia controlada por el objeto de *rightcola , con el mismo predicado de ordenación.

Constructor:

explicit priority_queue(value_compare^ pred);

crea un contenedor encapsulado vacío, con el predicado de ordenación pred. Se usa para especificar una secuencia controlada inicial vacía, con el predicado de ordenación especificado.

Constructor:

priority_queue(value_compare^ pred, container_type cont);

crea un contenedor encapsulado vacío, con el predicado de ordenación pred y, a continuación, inserta todos los elementos de cont Se usa para especificar una secuencia controlada inicial de un contenedor existente, con el predicado de ordenación especificado.

Constructor:

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

crea un contenedor encapsulado vacío, con el predicado de ordenación predeterminado y, a continuación, inserta la secuencia [first, last). Se usa para especificar una secuencia controlada inicial a partir de una eqeuence especificada, con el predicado de ordenación especificado.

Constructor:

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

crea un contenedor encapsulado vacío, con el predicado de ordenación pred y, a continuación, inserta la secuencia [first, last). Se usa para especificar una secuencia controlada inicial a partir de una seqeuence especificada, con el predicado de ordenación especificado.

Constructor:

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

crea un contenedor encapsulado vacío, con el predicado de ordenación pred y, a continuación, inserta todos los elementos de cont más la secuencia [first, last). Se usa para especificar una secuencia controlada inicial de un contenedor existente y una seqeuence especificada, con el predicado de ordenación especificado.

Ejemplo

// 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)

Agrega un nuevo elemento.

Sintaxis

void push(value_type val);

Comentarios

La función miembro inserta un elemento con valor val en la secuencia controlada y reordena la secuencia controlada para mantener la materia de montón. Se usa para agregar otro elemento a la cola.

Ejemplo

// 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)

El tipo de una referencia a un elemento.

Sintaxis

typedef value_type% reference;

Comentarios

El tipo describe una referencia a un elemento.

Ejemplo

// 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)

Cuenta el número de elementos.

Sintaxis

size_type size();

Comentarios

La función miembro devuelve la longitud de la secuencia controlada. Se usa para determinar el número de elementos que hay actualmente en la secuencia controlada. Si lo único que le interesa es si la secuencia tiene un tamaño distinto de cero, vea priority_queue::empty (STL/CLR)().

Ejemplo

// 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)

Tipo de una distancia con firma entre dos elementos.

Sintaxis

typedef int size_type;

Comentarios

El tipo describe un recuento de elementos no negativos.

Ejemplo

// 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)

Copia la secuencia controlada en una nueva matriz.

Sintaxis

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

Comentarios

La función miembro devuelve una matriz que contiene la secuencia controlada. Se usa para obtener una copia de la secuencia controlada en forma de matriz.

Ejemplo

// 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)

Accede al elemento de prioridad más alta.

Sintaxis

reference top();

Comentarios

La función miembro devuelve una referencia al elemento superior (prioridad más alta) de la secuencia controlada, que debe no estar vacío. Se usa para acceder al elemento de prioridad más alta, cuando sepa que existe.

Ejemplo

// 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)

Accede al elemento de prioridad más alta.

Sintaxis

property value_type back_item;

Comentarios

La propiedad tiene acceso al elemento superior (prioridad más alta) de la secuencia controlada, que no debe estar vacío. Se usa para leer o escribir el elemento de prioridad más alta, cuando sepa que existe.

Ejemplo

// 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)

Copia el delegado de ordenación de dos elementos.

Sintaxis

value_compare^ value_comp();

Comentarios

La función miembro devuelve el delegado de ordenación utilizado para ordenar la secuencia controlada. Se usa para comparar dos valores.

Ejemplo

// 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)

Delegado de ordenación para dos valores.

Sintaxis

binary_delegate<value_type, value_type, int> value_compare;

Comentarios

El tipo es un sinónimo del delegado que determina si el primer argumento se ordena antes que el segundo.

Ejemplo

// 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)

El tipo de un elemento.

Sintaxis

typedef Value value_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla Value.

Ejemplo

// 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