QList или QVector для приложений, интенсивно использующих память - PullRequest
0 голосов
/ 01 октября 2018

Я разрабатываю конвейер обработки данных для серии двумерных астрономических изображений.Отдельное изображение представлено собственным классом MyFITS и имеет типичный размер 30 МБ.Полный набор данных легко состоит из нескольких 100 или 1000 изображений.Я ищу подходящий контейнер, который бы удовлетворял следующим требованиям:

Различные функции обработки либо работают с отдельными изображениями независимо, но могут также включать часть набора данных или все данные (например, вычислениескользящая медиана).Многие из этих функций должны быть объединены для получения конечного продукта данных.

Я хочу избежать чрезмерного ввода-вывода и как можно дольше хранить в памяти, в зависимости от технических характеристик компьютера пользователя.,Для этого у класса «MyFITS» есть два логических флага, которые указывают, существует ли текущее состояние обработки изображения в ОЗУ и на диске.

Я представляю себе контейнер, который существует в течение всего сеанса пользователя.Он должен содержать ссылку на все изображения, и он должен занимать переменное количество памяти.Например, в какой-то момент пользователь может отказаться от определенного количества изображений из-за плохого качества, и память должна быть освобождена.Он также должен иметь возможность добавлять изображения динамически.

Количество изображений и их объем памяти неизвестны во время компиляции.

Я смотрю на q QList, QLinkedList илиQVector?

Большое спасибо!

Миша Ширмер

...