|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
STL, deque, pair31.01.2012, 13:30. Показов 10869. Ответов 60
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста разобраться.
Есть такая очередь:
Как пройтись по всем элементам такой очереди? Как найти минимальный через timeval? // если можно через метод find Как добавить элемент в очередь, и удалить. Можно и пройтись по такой очереди с помощью итератора?
0
|
||||||
| 31.01.2012, 13:30 | |
|
Ответы с готовыми решениями:
60
|
|
|
||
| 01.02.2012, 02:54 | ||
|
Память-то не выделена под элементы очереди. Либо resize, либо push_back. На cplusplus посмотрите примеры. Да и условие в цикле странное. Почему через запятую?
1
|
||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||||
| 01.02.2012, 02:58 [ТС] | ||||||||
|
Добавлено через 30 секунд Вот, вроде получилось:
0
|
||||||||
|
|
||||||||
| 01.02.2012, 03:07 | ||||||||
1
|
||||||||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||
| 01.02.2012, 03:17 [ТС] | ||||
|
for(int i = 0, double k = 0.0; ... ...) разные типы, и компилятор вроде не будет понимать, что две переменные разного типа. Вывод при том(5-размер очереди...):
![]() Добавлено через 2 минуты осталось сделать поиск, и заменить дольше всех не использующуюся.
0
|
||||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
|
| 01.02.2012, 03:20 [ТС] | |
|
условия через запятую прописываются.
Подумал... а на while так то не разбить вроде... Придется превращать в одно условие с &&
0
|
|
|
|
||
| 01.02.2012, 03:27 | ||
|
Если лень компилировать и проверять http://liveworkspace.org/code/... 7de82e6b66
1
|
||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
| 01.02.2012, 03:54 [ТС] | ||||||
|
дошло...
warning: left operand of comma operator has no effect [-Wunused-value] компилю g++ Добавлено через 18 минут Дело думаю в том, что в 1м случае задается условие для обеих переменных, а во втором для отдельных. пример:
Господи... это еще и разные вещи, у себя не могу исправить.
0
|
||||||
|
|
||
| 01.02.2012, 04:07 | ||
|
А цикл у вас неправильно построен. Смысл заводить для dq1 итератор, если там нет ни одного элемента? И k пройдет одну итерацию цикла i, и больше не будет увеличиваться.
1
|
||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
|
| 01.02.2012, 12:14 [ТС] | |
|
хорошо, я проверю... поможете с поиском?
0
|
|
|
|
|
| 01.02.2012, 12:22 | |
|
Перегружаете < для timeval и используете std::min_element + нужен функтор. Функтор можете взять из кода на первой странице. Ну и перегрузку оттуда можете взять, только ее подправить нужно будет, я же для своего класса реализовывал.
1
|
|
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
| 01.02.2012, 15:12 [ТС] | ||||||
|
Перегружаю оператор так:
0
|
||||||
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
| 01.02.2012, 15:20 | |
|
1
|
|
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
| 01.02.2012, 18:50 [ТС] | ||||||
|
Не могу разобраться, перегружая функтор, какие мы параметры должны передавать ему?
Или полностью можно взять кусок кода?
0
|
||||||
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
| 01.02.2012, 18:52 | |
|
0
|
|
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
|
| 01.02.2012, 19:06 [ТС] | |
|
Нужно реализовать алгоритм LRU с помощью такой двусторонней очереди(ограниченной по размеру 5 ячеек):
deque<pair<int, timeval> >dq timeval - структура, которая возвращает время с помощью gettimeofday(). Задаем последовательность: 1 2 3 4 5 2 1 2 3 4 3 1 2 3 4 1 2 3 Добавляем в очередь страницы: 1 2 3 4 5 далее страница 2, она есть в памяти удаляем дольше всех не использовавшуюся страницу, на ее место помещаем страницу 2, а ту страницу с 2, которая дублируется, удаляем... (если я правильно понимаю). И так далее. Проблема в том, что я вообще плохо знаю STL. А это хороший вариант как мне кажется(вот бы его реализовать...) И еще, алгоритм LRU, который зарегламентирован, он должен содержать счетчик, тогда хватило бы обычной очереди думаю. Но с gettimeofday мы смотрим по времени обращения... Дошел до того, что нужно в такой очереди найти самое маленькое время.
0
|
|
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|||||||
| 01.02.2012, 19:44 | |||||||
0
|
|||||||
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
|
| 01.02.2012, 20:09 [ТС] | |
|
Нет, не пробовал, ваш код не компилится.
Сейчас попробую, как говорил, soon. Добавлено через 5 минут Получилось сделать(магическим образом), так, как говорил soon...
0
|
|
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
| 01.02.2012, 20:10 | |
|
0
|
|
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
|
| 01.02.2012, 20:11 [ТС] | |
|
Теперь нужно сделать удаление этого минимального элемента...
0
|
|
| 01.02.2012, 20:11 | |
|
Как реализован deque в STL ? Реализовать пользовательский класс Pair (упрощённый аналог std::pair)
STL std::set, std::pair, std::make_pair Как считать данные в vector<pair<int, pair<int, int>>> arr(m) ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|