std::make_heap
|
|
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 <algorithm>
|
||
template< class RandomIt > void make_heap( RandomIt first, RandomIt last ); |
(1) | |
template< class RandomIt, class Compare > void make_heap( RandomIt first, RandomIt last, Compare comp ); |
(2) | |
[first, last) rango. 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 .[first, last). The first version of the function uses operator< to compare the elements, the second uses the given comparison function comp.You can help to correct and verify the translation. Click here for instructions.
Parámetros
| first, last | - | la gama de elementos para hacer que el montón de
Original: the range of elements to make the heap from The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| 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 RandomAccessIterator.
| ||
-The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible.
| ||
Valor de retorno
You can help to correct and verify the translation. Click here for instructions.
Complejidad
3*std::distance(first, last) .3*std::distance(first, last) comparisons.You can help to correct and verify the translation. Click here for instructions.
Notas
[f,l) que tiene las siguientes propiedades:[f,l) that has the following properties: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 usingstd::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 usingstd::pop_heap()The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
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::cout << "initially, v: ";
for (auto i : v) std::cout << i << ' ';
std::cout << '\n';
std::make_heap(v.begin(), v.end());
std::cout << "after make_heap, v: ";
for (auto i : v) std::cout << i << ' ';
std::cout << '\n';
std::pop_heap(v.begin(), v.end());
auto largest = v.back();
v.pop_back();
std::cout << "largest element: " << largest << '\n';
std::cout << "after removing the largest element, v: ";
for (auto i : v) std::cout << i << ' ';
std::cout << '\n';
}
Salida:
initially, v: 3 1 4 1 5 9
after make_heap, v: 9 5 4 1 1 3
largest element: 9
after removing the largest element, v: 5 3 4 1 1
Ver también
Resulta un montón en una gama de elementos ordenados Original: turns a heap into a sorted range of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (plantilla de función) |