С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25

Как в памяти представляется двусторонняя очередь (deque)?

18.05.2012, 22:46. Показов 4498. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди пожалуйста помогите разобраться, как в памяти представляется двусторонняя очередь (deque), типа нарисовать таблицу ну память и схематично показать, как эта двусторонняя очередь работает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2012, 22:46
Ответы с готовыми решениями:

Какой объем памяти занимает пустая двусторонняя очередь (deque)?
Сколько бит в памяти занимает дек перед добавлением в него элементов и как распределяется память под его блоки?

Как представляется моя структура с перечислением в памяти?
Типы, которые тут используются: typedef unsigned int UINT; typedef LPCTSTR const wchar_t *; struct HotKey { //ВНИМАНИЕ!...

двусторонняя очередь
помогите создать программу...вот условие задачи:создать класс-дек(двусторонняя очередь).определить функции заполнения очереди, извлечения...

14
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.05.2012, 23:25
std::deque
1
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
19.05.2012, 00:35  [ТС]
допустим в памяти у нас хранится какое то число, мы можем добавляться и удалять сначала и конца его цифры если у нас дек?если да, то как это делается, не могли бы вы рассказать?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.05.2012, 00:54
Нигде не видил чтоб описывался подобный процес.
Но предпологаю что если в выделенном куске памяти еще есть зарезервированное место (как в векторе) если нет, то выделяется новый кусок и добавляется указатель на него (как в листе).
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
25.05.2012, 14:54  [ТС]
я показал преподователю эту картинку двусторонней очереди , он мне говорит, типа что нужно ,чтобы реализовать такую байду?какие переменные, указатели?Люююдиии помогите разобраться
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 22:22
Нужно "хранилище" в котором будут храниться указатели на все участки памяти.
Ну а чем может быть это хранище - вопрос.
В принципе это может быть тот же vector<T*> или list<T*> в который при необходимости будет добаляться указатель на массив(новый участок памяти)
Но тут можно лишь строить догадки... например если участки памяти выделяются разной длины то кроме указателя на массив нужно еще хранить и размер массива.
Как оно в действительности реализовано в STL я не встречал.
0
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
26.05.2012, 04:23
Можно сделать на основе 2-х векторов и абстрактно считать что один увеличивается в одну сторону, а другой в другую. Тогда будет быстрое добавление и удаление элементов в конец и начало.
Только в такой системе возникнут проблемы если в одном из векторов удалятся все элементы и удаление перекинется на другой. В таких случаях их надо балансировать, в идеале чтобы в каждом было поровну элементов.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 04:35
Damaks- это будет не то что нужно так как vector делает перераспределение, а deque- не должен это делать.Из за этого возможно снижение эффективности и невалидность итераторов

Поэтому если и использовать vector то строго постоянного размера
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.05.2012, 04:37
Скорее на основе 2 списков
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 04:48
Скорее на основе 2 списков
Думаю сильно круто...
А доступ к элементам?

Добавлено через 5 минут
Я думаю достаточно что-то вроде vector<pair<T*,size_t> > v_ptr; и обычных массивов T[size];
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
26.05.2012, 14:43
Цитата Сообщение от Avazart Посмотреть сообщение
Я думаю достаточно что-то вроде vector
Нельзя вектор, т.к. при добавлении может быть перераспределение памяти и все итераторы\ссылки на остальные элементы станут недействительны. Голосую за список массивов:
list<value_type [page_size]>.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 15:41
gray_fox вектор как хранище ссылок, а не хранилеще объектов - для объектов обычный массив
Но list тоже подходит только время доступа возможно увеличится...
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
30.05.2012, 20:39  [ТС]
Знающие люди, пожалуйста помогите понять, что такое двустороняя очередь, простая очередь, списки и двусвязные списки...Я перерыл инет, не могу ничего стоящего найти.В чем отличие простой очереди от списка?В чем отличие очереди от двусторонней очереди?В чем отличие двусторонней очереди от двусвязного списка?или в чем отличие двусторонней очереди от списка? или дайте ссылку на сайт , где все это есть...ато я уже запутался.........
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.05.2012, 20:48
Блин что за привычка сразу интернет?
Ведь есть еще и книги...к стати я в той теме указал от куда рисунок вырезал.
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
30.05.2012, 21:46  [ТС]
по этой книге я не могу все разобрать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2012, 21:46
Помогаю со студенческими работами здесь

Двусторонняя очередь
Как реализовать двустороннюю очередь для сохранения и работы с динамическими данными?

Записать число типа int в массив char -ов так, как оно представляется в памяти
Здравствуйте, моя цель - записать переменную какого-либо типа в массив char-ов (строку) так, как она представляется в памяти. Например, я...

Дек - двусторонняя очередь
Как реализовать дек через классы на базовой структуре список?

Класс двусторонняя очередь
Проблема: С методом pop_back(удалением с конца) Так-же помогите перезагрузить оператор(Выводит значение) class Deque{ private: ...

Двусторонняя очередь (ДЕК)
Помогите пожалуйста реализовать дек : Нарисовал uml диаграмму , но как сделать не знаю , должно быть 3 класса , все в джинерике и в ООП...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru