std::pop_heap - cppreference.com
De cppreference.com
|
|
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate. La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
| Definido en el archivo de encabezado |
||
|
|
(1) | |
|
|
(2) | |
Intercambia el valor en la posición first y el valor en la posición last-1 y hace que el [first, last-1) subrango en un montón'. Esto tiene el efecto de eliminar la primera (la más grande) elemento de la pila definida por el intervalo [first, last) .
Original:
Swaps the value in the position first and the value in the position last-1 and makes the subrange [first, last-1) into a heap. This has the effect of removing the first (largest) element from the heap defined by the range [first, last).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
La primera versión de la función utiliza operator< para comparar los elementos, el segundo utiliza la función de comparación dado comp .
Original:
The first version of the function uses operator< to compare the elements, the second uses the given comparison function comp.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Parámetros
| first, last | - | la gama de elementos que definen la pila no vacía válido para modificar Original: the range of elements defining the valid nonempty heap to modify The text has been machine-translated via Google Translate. |
| comp | - | objeto función de comparación (es decir, un objeto que satisface los requerimientos de Compare) que devuelve true si el primer argumento es menor que el segundo.
La signatura de la función de comparación deberá ser equivalente a lo siguiente:
Mientras que la signatura no necesita ser |
| Requisitos de tipo | ||
-RandomIt debe reunir los requerimientos de ValueSwappable y RandomAccessIterator.
| ||
-The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible.
| ||
Valor de retorno
(Ninguno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Complejidad
A lo sumo 2 × log (N) comparaciones N=std::distance(first, last) donde .
Original:
At most 2×log(N) comparisons where N=std::distance(first, last).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Notas
Un montón' es una serie de elementos [f,l) que tiene las siguientes propiedades:
Original:
A heap is a range of elements [f,l) that has the following properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
*fes el elemento más grande en el intervaloOriginal:
*fis the largest element in the rangeThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.un elemento nuevo puede añadirse utilizando
std::push_heap()Original:
a new element can be added using
std::push_heap()The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.el primer elemento se puede eliminar con
std::pop_heap()Original:
the first element can be removed using
std::pop_heap()The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
La disposición real de los elementos depende de la implementación .
Original:
The actual arrangement of the elements is implementation defined.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Ejemplo
#include <iostream> #include <algorithm> int main() { std::vector<int> v { 3, 1, 4, 1, 5, 9 }; std::make_heap(v.begin(), v.end()); std::cout << "v: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; std::pop_heap(v.begin(), v.end()); // moves the largest to the end std::cout << "after pop_heap: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; int largest = v.back(); v.pop_back(); // actually removes the largest element std::cout << "largest element: " << largest << '\n'; std::cout << "heap without largest: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; }
Salida:
v: 9 5 4 1 1 3 after pop_heap: 5 3 4 1 1 9 largest element: 9 heap without largest: 5 3 4 1 1
Ver también
| Agrega un elemento a un montículo de máximos. (plantilla de función) [editar] |