Я ищу правильную структуру данных для этого сценария.У меня есть повышение, доступное для использования.
Код изначально был на C #, и я использовал очередь там, но я не верю, что это был правильный выбор, и нет эквивалента C ++ для очереди C #, так какнасколько я могу судить.Я смотрю на следующие свойства с точки зрения их частоты / важности:
- Требуется быстрая итерация
- Необходимо иметь возможность быстро продвигать структуру (т. Е. Когда я тянуэлемент сверху, следующий элемент должен быть заголовком структуры)
- Время от времени удаляется, а затем полностью заполняется
- Время от времени копируется
- Не требуетсяотсортированные по мере добавления элементов будут в правильном порядке
Количество элементов будет известно во время создания и будет составлять от 50 до 200 элементов.Структура никогда не будет содержать больше этого, но иногда может содержать меньше
Я рассматривал возможность использования std :: list, но из-за необходимости очищать, а затем периодически заполнять, это не кажется хорошим вариантом.Когда я создаю список с фиксированным размером, а затем очищаю его, он теряет префиксный размер, не так ли?Есть ли какой-нибудь способ всегда сохранять размер списка, чтобы ему не приходилось освобождать / выделять память?
Я знаю, что boost имеет структуру данных очереди, но она не повторяется, и я не уверенесли бы у меня была такая же проблема, как у меня с std::list
Было бы полезно несколько советов о том, как вписать std::list
в мою проблему или более подходящую структуру данных.