Я знаю, что это старый поток, но если вы просто возвращаете значение Id в массиве, возможно, вам придется выбрать этот синтаксис. Поскольку мне не показалось, что значение indexOf соответствует формату Mongo ObjectId.
obj.map = function() {
for(var i = 0; i < inputs.length; i++){
if(this._id.equals(inputs[i])) {
var order = i;
}
}
emit(order, {doc: this});
};
Как преобразовать mongo ObjectId .toString без включения 'ObjectId ()' wrapper - только значение?
boost::lengauer_tarjan_dominator_tree_without_dfs
мог бы помочь.
Судя отсутствием комментариев, я предполагаю, что нет многих людей на Stackoverflow с соответствующим опытом помочь Вам. Я - один из тех людей, но я не хочу такого интересного вопроса, понижаются с с тусклым глухим стуком, таким образом, я попытаюсь предоставить руку.
Моя первая мысль - то, что, если бы этот график сгенерирован другими компиляторами, стоило бы смотреть на компилятор с открытым исходным кодом, как GCC, видеть, как это решает эту проблему?
Мое долгое размышление - то, что, основной момент Вашего вопроса, кажется, старается не повторно вычислять результат для корня дерева.
то, Что я сделал бы, создают обертку вокруг каждого узла, который содержит сам узел и любые предварительно вычисленные данные, связанные с тем узлом. Новое дерево было бы затем восстановлено от старого дерева рекурсивно с помощью этих классов обертки. Поскольку Вы создаете это дерево, Вы запустили бы в корне и работе свой выход к вершинам. Для каждого узла Вы сохранили бы результат вычисления для всего ancestory к настоящему времени. Тем путем Вам придется только когда-либо смотреть на родительский узел и текущие данные узла, которые Вы обрабатываете для вычислений значения для нового узла.
я надеюсь, что это помогает!
Вы могли уточнить то, с какого графика Вы запускаете? Я не вижу, как существует любое различие между графиком, который является деревом и деревом доминатора того графика. Родитель каждого узла должен быть своим idom, и это, конечно, было бы во власти всего выше его в дереве.
Я не полностью понимаю Вашего вопроса, но это кажется мне, Вы хотите иметь некоторую функцию инкрементного обновления. Я исследовал только что, что алгоритмы их, но мне казалось, что нет никакого известного пути к большим графикам, чтобы сделать это быстро (по крайней мере, с теоретической точки зрения).
можно просто искать "дерево доминатора инкрементных обновлений" для нахождения некоторых ссылок.
я предполагаю, что Вы знающие Память Eclipse, Анализатор действительно использует деревья доминатора, таким образом, эта тема не полностью больше "принадлежит" сообществу компилятора :)