|
2 / 2 / 0
Регистрация: 22.03.2022
Сообщений: 225
|
|
Проход по контейнеру и получение последнего активного значения19.02.2024, 14:37. Показов 1541. Ответов 28
Всем привет.
Есть лист структуры, каждая структура это значение и булево значение активности. Все структуры находятся в строгом порядке, то есть 1,2,3,4,5. Не может быть такого чтобы была ситуация 1,2,5,4,3. Активными могут быть минимум 0 а максимум например 5, и нужно узнать какой последний. Количество активных может меняться постоянно, а значит нужен постоянный проход. Вопрос, как можно такой алгоритм поиска осуществить чтобы быстро находить последний? Иметь дополнительно под каждую структуру еще флаг? Посоветуйте пожалуйста.
0
|
|
| 19.02.2024, 14:37 | |
|
Ответы с готовыми решениями:
28
Проход по какому-либо контейнеру
|
|
2 / 2 / 0
Регистрация: 22.03.2022
Сообщений: 225
|
||
| 27.02.2024, 19:49 [ТС] | ||
|
В методе вызывается в бесконечном цикле прилетает аргумент, в нем есть лист со структурой, главное в нем для меня это 2 поля, число и активность. Данный аргумент в метод передается уже в возможном измененом виде, то есть что-то будет активно, какие то значения могут остатся не активными. Привожу пример вариантов, каждая сторона будет как новая итерация и только активности. 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 0 Как видите состояние активности меняется по разному. и для моей задачи надо знать какой по индексу был последним активный, и по индексу я потом я образаюсь за другйо информацией, в частности за числом. Вариант с переворачиванием данного листа, получение того кто оказывается в перевернутом самым первым, сохранение его индекса но в нормальнмо виде, мне показалось хорошим вариантом. Сразу скажу, я ничего в лист добавлять не могу, я могу только читать то что в нем есть и реагировать на результаты.
0
|
||
|
Покинул чат.
1132 / 727 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
|
|
| 27.02.2024, 20:02 | |
|
SektorCT, обьясни на этом примере, вот ты перевернул список, и взял первый элемент (а почему нельзя взять последний элемент исходного списка, нах его переворачивать то?) и почему ты считаешь, что этот элемент будет тем последним, который изменился? я честно не догоняю...
Добавлено через 3 минуты вот у тебя некий массив, 1,2,3,4,5 поменялся 2-й элемент ты взял последний 5й (или перевернул 5,4,3,2,1 и взял 1й который в исходном виде 5й) но это ниразу не тот элемент, который менялся или я чего-то не понимаю?
0
|
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 27.02.2024, 20:08 | |
|
sdf45, а я из этого потока сознания вообще ничего не понял
![]() какой-то лист, какая-то активность ТЗ - хз Добавлено через 53 секунды SektorCT, давай без абстракций, просто расскажи, в чём задача заключается
0
|
|
|
Покинул чат.
1132 / 727 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
|
|
| 27.02.2024, 20:15 | |
|
Алексей1153, я (хз правильно или нет) понял так, что на входе есть некий вектор, элементами которого является структура вида struct{int value, bool status}, и status может меняться в каждой итерации получения этого вектора. И вот ТСу надо найти тот элемент вектора, в котором этот самый status изменился последним. То есть там где-то меняется скажем 2й, 8й, 3й элемент именно в таком порядке, и ему нужен последний -3й, откуда надо брать value
0
|
|
|
2 / 2 / 0
Регистрация: 22.03.2022
Сообщений: 225
|
||
| 27.02.2024, 20:37 [ТС] | ||
|
Зная индекс того статуса кто стал на данной итерации последним я моуг узнать к какому числу он относится. Но всегда важно знать именно кто из статусов стал активным последний.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 27.02.2024, 21:30 | |
|
0
|
|
|
Покинул чат.
1132 / 727 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
|
|
| 27.02.2024, 21:45 | |
|
SektorCT, лично мое мнение:
Если в приходящем векторе меняется не один, а несколько элементов, и никак нельзя изменить формат входящих данных, то никак нельзя узнать хронологию этих изменений, если она не приходит от меняющей стороны. Даже сохраняя копию или некое состояние предидущего значения. Во всяком случае, я таких способов не знаю. Насколько я понимаю, тут либо обновлять состояние полностью на каждой итерации изменений, либо сохранять предидущее состояние и обрабатывать только то, что изменилось. Если не ошибаюсь, сабж связан с Qt QML(моделями), и по идее, не стоит париться- используемая модель все сделает сама.
0
|
|
|
2 / 2 / 0
Регистрация: 22.03.2022
Сообщений: 225
|
|
| 27.02.2024, 22:17 [ТС] | |
|
Всем спасибо, извиняюсь что может не очень хорошо смог обьяснить. Исходя из последнего сообщения решил оставить обычный проход по контейнеру, и когда получаю последний активный индекс его сохраняю.
Проходить буду всегда с начала и до конца.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 27.02.2024, 22:29 | |||
|
Добавлено через 1 минуту
0
|
|||
| 27.02.2024, 22:29 | |
|
Помогаю со студенческими работами здесь
29
Перемещение по контейнеру и получение значений Получение первого и пОследнего значения методом forEach Получение значения последнего элемента в поле ID списка List<> Получение активного окна
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|