Устойчивы ли итераторы forward_list?

Мне нужно реализовать список запросов, отсылать их по одному (удушено) и ждать ответа (всегда в порядке). Таким образом, операции являются:

  • Вставить (в конце)
  • Удалить (при запуске)
  • Шаг вперед (указатель «отправлено»)

Я только что обнаружил std::forward_listи думаю использовать его. Но чтобы это работало, мне нужно отслеживать один итератор для отправленного указателя и один итератор для вставки, и они не могут сломаться, когда я вставляю и удаляю объекты.

Интуитивно я бы сказал, что итераторы связного списка будут стабильны для вставки и удаления, но кто-то может это подтвердить. Кроме того, мне нужно сделать особый случай, если я очищаю список, где итератор вставки должен сброситься до before_begin?

2

Решение

Соответствующая цитата из стандарта приведена в пункте 1 (первое предложение) 23.3.4.5 [forwardlist.modifiers]:

Ни одна из перегрузок insert_after влияет на действительность итераторов и ссылок, и erase_after аннулирует только итераторы и ссылки на стертые элементы.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]