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

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

18.05.2012, 22:46. Показов 4617. Ответов 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru