bin ich ziemlich sicher, dass es keine Standard-konforme Art und Weise, es zu tun - Wikipedia says so too:
gibt es keinen Standard-Support für die Abnahme/Zunahme-Tasten-Bedienung
Obwohl es geht nicht um auf die gheap
Bibliothek zu zeigen, die einen Blick wert sein könnte.
Das Problem hier ist, dass der Standard nicht vorgibt, welche Form die Heap-Struktur nimmt, noch, wie genau die Operationen ausgeführt werden. (In der Regel ist dies eine gute Sache.)
Wenn die Implementierung eines Standard-Binär-Heap verwendet dann denke ich, Sie einfach das Element an heap[i]
verringern und rufen dann push_heap(heap.begin(), heap.begin() + i + 1)
, die die notwendige up Haufen Operation tun wird. Das Element, das an der Position i
endet, darf nicht größer als der ursprüngliche Wert sein, sodass die Heap-Eigenschaft des gesamten Heap beibehalten wird. Aber dies wird vom Standard nicht unterstützt, auch wenn es manchmal in einigen Implementierungen funktioniert.
irgendein Element leider – Jake