|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
STL, deque, pair31.01.2012, 13:30. Показов 10371. Ответов 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) ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|