Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему по стандарту для std::queue используется для хранения std::deque? / 7 сообщений из 7, страница 1 из 1
29.06.2013, 14:26
    #38314718
std::queue
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему по стандарту для std::queue используется для хранения std::deque?
Почему по стандарту для адаптера 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
29.06.2013, 20:50
    #38314842
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему по стандарту для std::queue используется для хранения std::deque?
std::queue,

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

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

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

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

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

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

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

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


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