У меня есть вектор целых чисел, которые являются просто индексами моей структуры данных, и я хочу, чтобы куча была построена на основе некоторых свойство этой структуры данных.
Если бы я хотел иметь лямбда-функцию для сравнения, это было бы просто:
Код: Выделить всё
[](int x, int y){return elementList[x]->lnc > elementList[y]->lnc;}
У меня есть два решения. Во-первых, чтобы сохранить указатели в имеющемся у меня векторе. Во-вторых, самому реализовать кучу с нуля.
Есть ли более простое решение?
Обновление: предложение захвата в лямбда-функции (упомянул Брайан) — хороший способ. Есть ли какое-нибудь решение, если я не хочу использовать лямбда-функцию?
Подробнее здесь: https://stackoverflow.com/questions/633 ... -structure
Мобильная версия