Здравствуйте, c-smile, Вы писали:
CS>Вопрос можно ли как-нибудь обойтись без этого hash_set ?
CS>Я в принципе могу добавить скажем так uint поле в element для маркерных целей.
Ну точно не hash_set — это тормоза на ровном месте.
CS>Проблема осложняется еще тем что visitor функтор в принипе тоже может запускать visit_tree для каких-то других своих целей.
Ну
640К uint должно хватить для чего угодно.
Только их потом придется бегать очищать же. Или у тебя обработка однократная?
А деревья меняются по ходу дела? Или создаются вначале и так и живут?
А то можно ведь параллельную структуру данных завести.
Можно ли каждому элементу присвоить номер (в процессе заполнения дерева)? Если да, то вместо hash_set можно использовать просто битовый vector и обращаться к нему по номеру элемента — чистить его очень быстро и легко.
Если у тебя flat tree (т.е. поверх массива) — то это вообще тривиально будет.