Compartir a través de


priority_queue (Clase)

Una clase de adaptadores de contenedor de plantilla que proporciona una restricción de la funcionalidad que limita el acceso al elemento superior de algún tipo de contenedor subyacente, que siempre es el mayor o de prioridad máxima. Los nuevos elementos se pueden agregar al priority_queue y el elemento superior priority_queue puede ser inspeccionado o quitar.

template < 
   class Type,  
   class Container=vector<Type>, 
   class Compare=less<typename Container::value_type>  
> 
class priority_queue

Parámetros

  • Tipo
    El tipo de datos del elemento que se almacene en el priority_queue.

  • Container
    El tipo del contenedor subyacente usado para implementar el priority_queue.

  • Comparar
    El tipo que proporciona un objeto de función que puede comparar dos valores de elemento como criterio de ordenación para determinar el orden relativo en el priority_queue. Este argumento es opcional y el contenedorbinario***::value_type**<>de lesstypenamede predicado es el valor predeterminado.*

Comentarios

Los elementos de la clase Tipo estipulados en el primer parámetro de plantilla de un objeto de cola son sinónimos con value_type y deben coincidir con el tipo de elemento en la clase subyacente Contenedor de contenedor estipulado por el segundo parámetro de plantilla. Tipo Debe poderse asignar, de modo que es posible copiar objetos de ese tipo y asignar valores a variables de ese tipo.

El priority_queue pide la secuencia que controla llamando a un objeto almacenado de función de la clase Rasgos. En general, se debe poder comparar si los elementos son menores que otros para poder establecer este orden; de este modo, dados dos elementos cualesquiera, se puede determinar que son equivalentes (en el sentido de que ninguno es menor que el otro) o que uno es menor que el otro. Esto produce una ordenación entre los elementos no equivalentes. En un sentido más técnico, la función de comparación es un predicado binario que induce una ordenación débil estricta en el sentido matemático estándar.

Las clases subyacentes adecuadas de contenedor para el priority_queue incluyen clase de deque y clase vector predeterminado o cualquier otro contenedor de secuencias que admite las operaciones de front, push_back, y pop_back y un iterador de acceso aleatorio. La clase subyacente del contenedor se encapsula dentro del adaptador de contenedor, que expone solo el conjunto limitado de las funciones miembro de contenedor de secuencias como interfaz pública.

Cómo agregar elementos a y quitar elementos de priority_queue ambos tienen complejidad logarítmica. El acceso a elementos en priority_queue tiene complejidad constante.

Hay tres tipos de adaptadores de contenedor definidos por STL: pila, cola, y priority_queue. Cada limita la funcionalidad de alguna clase subyacente del contenedor para proporcionar una interfaz exacto controlada a una estructura de datos estándar.

  • clase de pila admite a pasado- en, primero - out estructura de datos de (LIFO). Un buen análogo a recordar sería una pila de placas. Los elementos (placas) se pueden incrustar, inspeccionar, o quitar sólo desde la parte superior de la pila, que es el último elemento al final del contenedor base. La restricción a tener acceso solamente al elemento superior es la razón para usar la clase de la pila.

  • clase queue admite a primero- en, primero - out estructura de datos de (FIFO). Un buen análogo a recordar sería personas que se alinean de un caso de bank. Los elementos (personas) se pueden agregar devuelva la línea y se quitan de delante de la línea. El principio y revertir de una línea pueden ser inspeccionados. La restricción a tener acceso los elementos sólo de anteriores y posteriores de esta manera es la razón para usar la clase queue.

  • La clase priority_queue ordena los elementos para que el elemento mayor esté siempre en la posición superior. Admite la inserción de un elemento y el examen y la eliminación del elemento superior. Un buen análogo a recordar sería personas que se alinean donde están organizados por edad, alto, o algún otro criterio.

Constructores

priority_queue

Construye priority_queue que está vacío o que es una copia de un intervalo de un objeto contenedor base u otro priority_queue.

Typedefs

container_type

Un tipo que proporciona el contenedor base que se adaptará por priority_queue.

size_type

Tipo entero sin signo que puede representar el número de elementos de un priority_queue.

value_type

Un tipo que representa el tipo de objeto almacenado como elemento en priority_queue.

Funciones miembro

empty

Comprueba si priority_queue está vacío.

pop

Quita el elemento mayor de priority_queue de la posición superior.

push

Agrega un elemento a la cola de prioridad basándose en la prioridad de operador<.

size

Devuelve el número de elementos de priority_queue.

top

Devuelve una referencia const al elemento más grande en la parte superior de priority_queue.

Requisitos

Cola <deHeader: >

Espacio de nombres: std

Vea también

Referencia

Seguridad para subprocesos en la biblioteca estándar de C++

Biblioteca de plantillas estándar