вида struct Node { char id; vector<Node*> prev, next; }; на умных указателях с быстрым доступом к элементам (вперед-назад) по ссылкам? Структура узла как в двухсвязном списке, только указателей вперед/назад много и они в vector. Можно создать список с ссылками назад как shared_ptr, вперед как weak_ptr, но тогда теряется быстрый доступ к next, поскольку там придется получать доступ через lock(). Держать оба списка c shared_ptr нельзя, будет утечка. На staсkover все пишут что нужно менять дизайн и избавляться от прямого владения, но не могу нигде найти как. Пример (a,b) <=> c <=> (d,e,f) на указателях https://pastebin.com/jCUahJEQ
это как самоцель или есть реальная прикладная задача?
белковую цепь из атомов держу в такой структуре, там везде разно число входов/выходов. Мне их обходить надо быстро. Сейчас утечки имеются, хочу переехать на умные указатели.
ok, а почему надо обязательно список предыдущих хранить, а не ходить через next, как если бы это был обычный двухсвязный список?
Обсуждают сегодня