Мне нужно реализовать список запросов, отсылать их по одному (удушено) и ждать ответа (всегда в порядке). Таким образом, операции являются:
Я только что обнаружил std::forward_list
и думаю использовать его. Но чтобы это работало, мне нужно отслеживать один итератор для отправленного указателя и один итератор для вставки, и они не могут сломаться, когда я вставляю и удаляю объекты.
Интуитивно я бы сказал, что итераторы связного списка будут стабильны для вставки и удаления, но кто-то может это подтвердить. Кроме того, мне нужно сделать особый случай, если я очищаю список, где итератор вставки должен сброситься до before_begin
?
Соответствующая цитата из стандарта приведена в пункте 1 (первое предложение) 23.3.4.5 [forwardlist.modifiers]:
Ни одна из перегрузок
insert_after
влияет на действительность итераторов и ссылок, иerase_after
аннулирует только итераторы и ссылки на стертые элементы.
Других решений пока нет …