В настоящее время вы пишете программу, которая будет анализировать через каталог (используя библиотеку ускорения) и добавлять расширения файлов, номер этого типа файла и размер файлов на карту, которая включает в себя строку и ключ - класс. Теперь я пытаюсь найти общее количество вхождений для каждого расширения файла, общее количество файлов, найденных в каталоге, и общее количество байтов, найденных в каталоге.Counting Occurrences In A Map
Вот важный код:
class fileStats
{
public:
int totalFiles;
long long fileSize;
};
map< string, fileStats > fileMap;
fileMap[dirIter->path().extension()].totalFiles++;
fileMap[dirIter->path().extension()].fileSize += file_size(dirIter->path());
Я не думаю, что я могу использовать метод .Count карт, если не перегружать его, но есть еще более простой способ сделать это?
Вы можете рассчитывать вхождения в O (N), если вы держите счет в то время как итерация по карте. Но если вы используете другую структуру данных, в первую очередь, у вас могут быть лучшие результаты. – aaronman
Если вы должны рассчитать общую сумму, используя некоторую логику, вы можете перебирать свою карту, а затем использовать boost :: accumulator, когда элементы yuour соответствуют вашим условиям. – Jepessen