powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему по стандарту для std::queue используется для хранения std::deque?
7 сообщений из 7, страница 1 из 1
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314718
std::queue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему по стандарту для адаптера std::queue<> "однонаправленная очередь" (FIFO) используется для хранения контейнер "двунаправленная очередь" std::deque<>?

http://www.cplusplus.com/reference/queue/queue/
авторIn their implementation in the C++ Standard Template Library, queues take two template parameters:
Код: plaintext
1.
template < class T, class Container = deque<T> > class queue;



Ведь это оверхед на хранение лишних указателей в обратном направлении.

1. И используется ли в новом стандарте C++11 в std::queue<> для хранения новый контейнер std::forward_list<> (однонаправленный список)?
2. И почему в std::deque<> "двунаправленная очередь" не используется для хранения контейнер std::list<> "двунаправленный список"? По сути же это одно и тоже, только у std::deque<> меньше функций доступа.
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314842
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
std::queue,

Потому что вставка и удаление с двух сторон очереди за O(1). А очередь должна меняться именно так, с двух сторон.
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314922
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
std::queueПочему по стандарту для адаптера std::queue<> "однонаправленная очередь" (FIFO) используется для хранения контейнер "двунаправленная очередь" std::deque<>?

Ведь это оверхед на хранение лишних указателей в обратном направлении.

Рекомендую подробнее узнать, что из себя представляет внутри deque. Тогда вопрос про указатели отпадет
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314929
Anatoly Moskovskystd::queueПочему по стандарту для адаптера std::queue<> "однонаправленная очередь" (FIFO) используется для хранения контейнер "двунаправленная очередь" std::deque<>?

Ведь это оверхед на хранение лишних указателей в обратном направлении.

Рекомендую подробнее узнать, что из себя представляет внутри deque. Тогда вопрос про указатели отпадет
Достаточно того, что помимо форвард-итератора, у std::deque ещё есть реверс-итератор:
http://www.cplusplus.com/reference/deque/deque/rbegin/
Для std::queue достаточно форвард-итератора, разве нет?
Этого достаточно для изъятия всех элементов по очереди начиная с начала. А для добавления к концу достаточно на весь контейнер один указатель на последний элемент.
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314933
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
достаточно форвард-итератора,

Вы не поняли. Там оверхед другого масштаба чем указатель :)
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314944
Anatoly Moskovskyдостаточно форвард-итератора,

Вы не поняли. Там оверхед другого масштаба чем указатель :)
Я серьёзно не понимаю, объясните? :)
...
Рейтинг: 0 / 0
Почему по стандарту для std::queue используется для хранения std::deque?
    #38314953
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
достаточно форвард-итератора,

Начните понимание с того откуда вы взяли про "хранение лишних указателей в обратном направлении".
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему по стандарту для std::queue используется для хранения std::deque?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]