Храните объект дерева непосредственно в источнике, чтобы избежать роста во время выполнения

У меня есть 50 (больших) деревьев решений, которые в настоящее время сериализуются (в предварительном порядке) как отдельные длинные строки. Все строки хранятся непосредственно в файле декларации .cpp, чтобы избежать необходимости их чтения из файла во время выполнения. Таким образом, во время выполнения вызывается функция, которая десериализует каждую строку и создает соответствующее дерево решений, используя стандартный рекурсивный процесс. Впоследствии набор признаков (вектор двойных чисел) сбрасывается в каждом дереве решений, и выводится прогноз класса. А-ля Случайный Лес, большинство голосов взято, и окончательный класс взят.

Я попытался оптимизировать код и обнаружил, что перестройка этих больших деревьев занимает большую часть (~ 98%) моего времени выполнения. Таким образом, я хотел спросить, есть ли какой-нибудь способ жестко закодировать весь объект дерева в файл объявления .cpp. Таким образом, вместо того, чтобы восстанавливать деревья во время выполнения, объекты дерева уже доступны для прохождения во время выполнения.

0

Решение

Я имею доступ к C ++ 11, я думаю constexpr функции — это ваше решение.

Вы можете написать функции для генерации данных деревьев во время компиляции, сохраняя эти данные в массивах во время компиляции.

Увидеть эта тема для примера использования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]