Название: Выбор модели работы с данными Отправлено: leonopulos от Февраль 06, 2015, 16:29 Здравствуйте.
Помогите с выбором структуры данных. Имеются 2 списка: 1, 2, 3, 4... и a,b,c,d... Элементы из одного списка могут ссылаться на элементы другого списка, как показано на рисунках. Количество элементов в списках могут меняться. Их можно как добавлять, так и удалять. Если элемент удаляется, то должны удаляться все связи, идущие к нему. Как лучше обрабатывать эти данные? то ли как граф, то ли как какие-то взаимоувязанные списки? Не получается готовый контейнерный класс подобрать. Название: Re: Выбор модели работы с данными Отправлено: torwig от Февраль 06, 2015, 19:45 Например, элемент списка может быть структурой, которая содержит значение (1, 2, 3 или а, б, в) и список, множество указателей на элементы другого списка.
Название: Re: Выбор модели работы с данными Отправлено: Igors от Февраль 07, 2015, 09:41 Вообще-то настоящий кайф начинается когда в undo надо восстановить разорванные связки :)
Здесь есть смысл работать по "ID" - уникальный ключ объекта. Хранится мапа, напр <ID, QPointer <QObject> >. Объект знает на какие ID он ссылается и какие на него. При удалении объекта эл-ты из мапы не удаляются. Объект может получить указатель по ID, но не должен этот указатель постоянно хранить. |