У меня есть общий контейнер дерева, и я хотел бы реализовать итератор для обхода его элементов. В основном контейнере я использовал общие указатели для соединения различных узлов дерева.
Имеет ли смысл реализовывать итератор с использованием слабых указателей?
Дело в том, что если я удаляю узел из дерева во время использования итератора, ресурсы узла будут освобождены только тогда, когда итератор будет уничтожен (если я использую общие указатели). Со слабыми указателями я предполагаю, что ресурсы освобождаются сразу (возможно, делая итератор несогласованным, но это не важно).
Можете ли вы придумать другие решения этой проблемы?