В реальности, если наши элементы Priority Queue являются объектами, то нам нужно знать, какой элемент Priority Queue отвечает какому объекту и в обратную сторону: на каком индексе стоит тот или иной объект в Priority Queue’s max-heap. То есть нам нужна своего рода mapping function.
Один из способов это сделать — использовать handles (”держатели”): это дополнительная информация, хранящаяся в объектах и в элементах Priority Queue, благодаря которым мы можем осуществить mapping из объекта в индекс очереди с приоритетами, из индекса очереди с приоритетами в объект.
Когда max-heap делает какие-то операции со своими элементами, она обновляет их индекс в соответствующем handle.
Typically, the worst-case overhead for maintaining handles is $\bf O(1)$ per access.