Я хотел бы реализовать движущееся окно образцов, которые добавляются через нерегулярные промежутки времени, и я хотел бы знать, следует ли мне использовать std::forward_list
или std::deque
. По прошествии времени новые элементы будут добавляться в конец контейнера, а те, срок действия которых уже истек, будут извлекаться из начала контейнера. Теперь проблема в том, что этот контейнер будет совместно использоваться более чем одним объектом, и мне нужно убедиться, что итераторы не становятся недействительными после вставки в конце или стирания в начале.
Итак, мой вопрос: делают ли итераторы для std::deque, которые указывают на элементы, недействительными после вставки в конце ИЛИ стирания в начале? Обратите внимание, что итераторы, о которых я говорю, указывают на элементы в контейнере, которые не являются началом или концом контейнера.
Моя интуиция подсказывает мне, что мне нужно будет реализовать это с помощью std::forward_list
. Если да, то знает ли кто-нибудь, может ли связанный список повторно использовать уничтоженные узлы или он выделяет память каждый раз, когда вставляется новый элемент?
deque::erase
,deque::insert
. - person Tony Delroy   schedule 11.09.2014