|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|||||||||||
Присвоение значения переменной vector of tuple19.06.2019, 08:04. Показов 2965. Ответов 15
Как сделать так, чтобы при изменении Elevator::current_floor менялось и значение вектора loaded_users? Да, знаю про указатели, но что-то не допру. Да, та Elevator::current_floor объявлена как static. Но если в данном примере абстрагироваться и создать не static переменную, а int причем конкретно в данном scope, будет тот же результат. Хочется, чтобы при изменении Elevator::current_floor автоматом менялось значение одного из tuple вектора loaded_users. А так же, чтобы можно было потом отключить это изменение. Добавлено через 26 минут Пожалуй, добавлю сюда прототип кода. Это урезанный псевдокод. Идея такая, что когда лифт достигает определенного этажа, он берет с собой ползьзователя. Я для этого создал вектрр таплов Elevator::loaded_users. Данные в него записываются из вектора таплов active_users. Но пока я чисто проверяю на active_users, как бы это сработало. Этот код не заработает, я его пока писал чисто в блокноте для логического представления, так как раньше прога работала лишь с одним пассажиром. (прототип программы), теперь перехожу к нескольким.
0
|
|||||||||||
| 19.06.2019, 08:04 | |
|
Ответы с готовыми решениями:
15
Присвоение значения переменной из функции
Присвоение значения переменной в классе |
|
Комп_Оратор)
|
||||||||
| 19.06.2019, 08:31 | ||||||||
Как сделать так, чтобы при изменении Elevator::current_floor менялось и значение элемента массива loaded_users? ?
0
|
||||||||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|
| 19.06.2019, 09:17 [ТС] | |
|
IGPIGP, ну ясен пень - нет. Но в том и дело, как это бы связать указателем.
Хочется сразу связать вектор таплов с переменной Elevator::current_floor, чтобы по возможности эту связь отключить потом.
0
|
|
|
Комп_Оратор)
|
||||||
| 19.06.2019, 09:49 | ||||||
Сообщение было отмечено streamc как решение
Решение
streamc, туплы хороши для простых вещей типа литеральных классов. Делать на них сложные зависимости, вряд ли хорошая идея. Я красивых вариантов не знаю.
1
|
||||||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|
| 19.06.2019, 10:09 [ТС] | |
|
IGPIGP, спасибо ,ваш код почитаю. Сейчас сам подумаю над алгоритмом, так как та задача все-равно из него возникла. Есть в голове, скажу так, варианты, реализации, но не сформированные. Сделаю, чтобы при достижении лифтом этажа, двигался и пассажир. Только будет ли там массив с пользователем в классе лифта, либо отдельный массив, указывающий, что лифт достиг этажа пользователя, решу. Или метки, работающие при достижении результата. Как например, движение с лифтом, только при достижении этажа пользователя.
0
|
|
|
146 / 39 / 26
Регистрация: 11.05.2019
Сообщений: 122
|
||
| 19.06.2019, 10:23 | ||
|
известна позиция loadedusers
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 19.06.2019, 10:49 | |||
|
В классе Лифт есть массив пользователей, которые в нём едут - std::vector<std: air<TWeight, TFoor>>. Когда человек заходит в лифт, то в этот массив добавляется элемент, расчитывается общий вес и "нажиматся кнопка" - задаётся этаж, на котором лифт остановливится. Когда лифт останавливается на этаже из массива удалятся все элементы, этаж которых равен текущему.
0
|
|||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|||
| 19.06.2019, 15:49 [ТС] | |||
|
Тут вопрос еще генерации, раз уж зашла речь о лифте. Скажем, пока я могу генерировать пассажиров, сначала сгенериров их вектор (так было изначально) или в процессе движения, на каждом этаже случайно подключать пассажира. Но лучше всего по времени и как-то связать это время с реальным выполнением, вот это я еще не обдумывал.
0
|
|||
|
146 / 39 / 26
Регистрация: 11.05.2019
Сообщений: 122
|
|||
| 19.06.2019, 16:30 | |||
|
Не по теме:
0
|
|||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|||
| 19.06.2019, 16:43 [ТС] | |||
|
А движение - это инкремент этажа на единицу в двух выборочных направлениях - вверх или вниз. Добавлено через 11 минут Конечно, можно вообще сделать лифт черным ящиком, в который только входят и выходят пользователи, загружая себя в лифт и разгружая. То есть 1) Лифт дошел до 6-этажа 1.1. Пользователь зашел в лифт. 2) Лифт доехал до этажа назначения - 9. Пользователь вышел, из вектора Elevator::loaded удален элемент Но почему бы и не знать, что пользователь на 7-м этаже или 8-м.
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 19.06.2019, 16:55 | ||
|
Если пользователь в лифте, то достаточно знать где сейчас лифт. Если снаружи - то лифт узнает о нём, когда тот нажмёт кнопку вызова
0
|
||
|
Комп_Оратор)
|
|||
| 19.06.2019, 17:07 | |||
|
Если ваши объекты - пользователи, то они не имеют смысла без объекта которым пользуются, да. Но и в этом случае разные пользователи могут быть в разных состояниях пользования. Могут быть в лифте идущем вверх между этажами N, N+1, могут быть в лифте идущем вниз и с другими координатами. И могут ждать на одном из этажей. В этом смысле группа студентов в 208-й аудитории на лекции по информатике, это группа пользователей в ожидании лифтов со второго этажа. Но если вы описываете не пользователей, а людей, то у них могут быть свои механизмы для изменения координат. Студент в коридоре может идти в том или ином направлении, вдоль коридора и поворачивать на пересечении коридоров туда, куда ему нужно. В этом смысле, карта и маршрут, это два класса, которые находятся в определённых отношениях между собой и студентом. Студент выбирает маршрут (является его собственником), но карту он не выбирает, до тех пор пока не сменит здание, местность, галактику. Но если студент стал на бегущую дорожку, вошёл в лифт или ракету, то он стал частью другого движущегося объекта. Причём, бегущая дорожка, лестничный элеватор, лифт не могут выбирать своих маршрутов, но могут выбирать направление. А вот ракета, это другой вопрос. Если это рейсовый звездолёт и управляет им опытный капитан, то ситуация предсказуема. А если это лёгкий прогулочный шлюп и за штурвалом будет сам студент, то всё иначе. Но и тут не стоит отчаиваться. Современный C++, обладает богатым выбором генераторов случайных чисел. Это позволяет описать поведение любого юзера в среднем, но не конкретного юзера задающего вопрос на форуме.
0
|
|||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
|||
| 19.06.2019, 17:31 [ТС] | |||
|
еще связь 100 к 1 можно прикрутить. Или, скажем, создать Latex-редактор, чтобы он не просто формулу вводил, а интересовался, кто вводит формулу и для чего. Да, по сути я ушел от вопроса в теме к более общему для себя, но ответы полезны. Реально полезны. И получив ваш ответ, можно так же рассмотреть его и что-то сделать, сохранить, создать конкурентный.
0
|
|||
|
Комп_Оратор)
|
||
| 19.06.2019, 18:00 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
||||||
| 19.06.2019, 19:07 [ТС] | ||||||
|
А еще я сделал функцию Loaded_Pass_to_Dest зависимой от доставки до первого пользователя лифта.
active_users - это вектор пользователей лифта, которые делают запрос. Там три параметра. Id, этаж вызова, этаж назначения. Потом сделаю либо генерацию, либо запросы, либо и то, и то. Послал сюда, так как в начале уж совсем огрызок был и неработающий. Впрочем к reference wrapper это не относится. Ладно, поставлю точку. если надо будет уже другую тему создам. А пока буду делать нормально и обрамлять.
0
|
||||||
|
1 / 1 / 0
Регистрация: 23.11.2010
Сообщений: 136
|
||||||
| 20.06.2019, 12:29 [ТС] | ||||||
наверное, я нулевой элемент удаляю и он меняется, проверю. Добавлено через 11 минут Да, логично, нельзя перекраивать первый элемент и удалять ,если я потом на него все время в качестве сравнения ссылаюсь. Добавлено через 22 минуты Точнее, не на него, а новый нулевой элемент. Сделаю как я нулевой элемент копированной константой.
0
|
||||||
| 20.06.2019, 12:29 | |
|
Помогаю со студенческими работами здесь
16
Присвоение переменной значения из текстового файла Присвоение значения переменной класса через конструктор Присвоение переменной а значения случайного числа (random)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|