Я практикую использование неизменного объекта в C ++. Моя личная цель - представить общий граф объектов (в куче) с помощью последовательности неизменяемых графов.
Построить сам многовариантный граф не так уж сложно. Проблема в производительности. Для брутфорс-версий требуется полная копия графика, а это было неприемлемо.
Я пытался поделиться неизменными узлами. Но в этом случае у меня появилась новая проблема; Ссылки. Ссылка на другой объект должна обновляться во всем графе. Это требует посещения всех узлов каждый раз, когда я получаю новую версию графа. И это изменяет узлы со ссылками, поэтому они также должны быть получены (путем копирования). Производительность не будет лучше, чем копирование методом перебора.
Насколько я могу себе представить, реального эффективного способа представления мутации графа объектов с неизменяемыми состояниями не существует. Поэтому я прошу некоторую идею по этому поводу.
Можно ли эффективно представить мутацию графа объекта с неизменным состоянием?