Работа со списком чисел
Добрый день.
В программе вычисляется определенная переменная (вещественное число), далее опираясь на полученное значение нужно из набора чисел (порядка 40 разных значений - целые числа) выбрать ближайшее к ней значение. Таких переменных 10 шт. и наборы чисел для каждой из них состоят из целых чисел (от 20 до 40 значений).
Вопрос: Как удобнее хранить набор чисел - QList
Хочется каким-то образом это вес упростить.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Akiv Doros
- 11 ноября 2024 г. 22:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
- molni99
- 26 октября 2024 г. 8:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
- molni99
- 26 октября 2024 г. 8:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Добрый день
Для поиска числа можно выбрать следующий алгоритм, брать среднее число из набора и сравнивать его с текущим, если оно больше, то дальше брать вторую половину набора, в противном случае первую половину набора. Далее брать среднее число из половины набора и также сравнением выяснить к какой половине изучаемое число будет относится. Пока не останется только одно число. Либо два числа, а там уже вычитанием, и сравнением модулей остатка после вычитания решить к какому из двух чисел данное число ближе всего. Такой подход в общем случае должен быть быстрее, чем перебор всех чисел в наборе.
Что касается самих наборов, то если они должны загружаться в программу и эти наборы пользователь может сам формировать, то конечно, нужно предусмотреть возможность хранения этих наборов в каком-то файле. Можно сделать конфигу, которая будет хранить данные либо в XML, либо в JSON форматах. Я бы выбрал JSON... он хорош для сериализации, либо хранить в базе данных, можно взять SQLite, вполне рабочий вариант. Ещё можно хранить в QSettings, там есть группы, помимо одиночных переменных. Но во время работы программы, я бы загружал в память наборы, либо при запуске программы, либо при старте вычислений. Что касается QList, то он имеет возможность добавления своих компараторов для сортировки, QVector, насколько помню такого не имеет. Если нужен такой функционал, то используйте QList, если нет, то QVector.