У меня есть алгоритм, который обрабатывает файл по 6 различным переменным параметрам. Алгоритм создает истинный/ложный результат для файла для каждого набора параметров. Я запускаю этот алгоритм через набор файлов, получая в результате true/false в векторе (а также некоторые дополнительные, нерелевантные данные).Ищете лучший способ сортировки данных
Как только этот алгоритм выполняется, я хочу подсчитать количество истинных результатов для каждого набора параметров, а также количество обработанных файлов. То, как я могу это сделать прямо сейчас выглядит следующим образом:
while(!results.isEmpty()){ //results being a vector of the individual file results
for (long i = 0; i < params.size(); i++){ //params being a vector of the parameters
if (results.first().params... == params[i].params...){
params[i].numFiles++;
if (results.first().result){
params[i].numTrue++;
}
results.pop_front();
break;
}
}
}
Это выполняет свою работу, но теперь, когда я оптимизирован мой алгоритм, это последний перегруженный в моем коде, и я ищу пути к ускорьте это. Каким будет лучший способ опрокинуть эти данные? Если это актуально, на данный момент я использую Qt, а мои векторы в настоящее время QVector.
Является ли 'results' a [' std :: vector'] (http://en.cppreference.com/w/cpp/container/vector)? Затем просто используйте ['std :: sort'] (http://en.cppreference.com/w/cpp/algorithm/sort). Если это контейнер Qt, я уверен, что у Qt есть и некоторые функции сортировки. –
Даже с Qt-контейнерами, поскольку Qt 5 рекомендуется использовать STL поверх Qt Algos. [Источник] (http://doc.qt.io/qt-5/qtalgorithms.html) –
quicksort может помочь вам – mryuso92