Я пытаюсь определить оптимальную реализацию для следующей задачи:
Допустим, у нас есть класс A
, который представляет сложный математический объект и при построении изначально содержит все необходимое внутреннее состояние. Для каждого объекта a_i
из A
можно вычислить окончательное числовое значение, которое нетривиальным образом зависит от других a_j
с j < i
, и известно a_0
. Более того, уравнения, которые приводят к окончательному ответу, требуют специального порядка оценки и оператор сравнения для a_i
может быть определен.
То, что я хочу сделать, это сначала создать все необходимые a_i
s, вставить их в некоторую упорядоченную структуру данных и, наконец, пройти по структуре в правильном порядке, чтобы получить окончательные результаты.
Теперь к реальному вопросу: какую структуру данных я использую, чтобы реализовать структуру для порядка оценки в общем виде? Бинарная куча? Или я просто использую std :: vector и сортирую его потом?
Спасибо!