Страницы

Поиск по вопросам

среда, 9 января 2019 г.

Универсальный контейнер: одновременно вектор, стек и очередь

Подскажите как правильно реализовать на С++ контейнер, который одновременно может работать как вектор (список), LIFO-стек и FIFO-очередь, максимально используя фичи STL "из коробки" ?
Применение: хочу универсальный тип-контейнер, который может не только хранить вложенные структуры (пока справляется class Obj { string val; vector nested; }), но и уметь специфичные для каждого перечисленного контейнера фичи одновременно
vector: произвольное чтение/вставка/замена по индексу stack: push/pop queue: put/get


Ответ

deque - он же double-ended queue
Поддерживает все, что вы перечислили. Названия функций-членов немного не такие, но это, думаю, не принципиально :) push_back, push_front - вставка с любого конца, pop_back, pop_front - снятие.
Словом, смотрите более детальное описание

Комментариев нет:

Отправить комментарий