Compressor::FrequencyVector Compressor::getFrequency(void* data, unsigned length) { char* ptr = (char*)data; FrequencyVector freq; while (length-- > 0) { getChar(freq, *ptr).count++; ptr++; } std::sort(freq.begin(), freq.end(), Compressor::compareFreq); return freq; }
WordAggregator::WordAggregator (FrequencyVector& words, FrequencyMap& _map, const char* libFilename=0) { library = new CommonWords(libFilename); for (unsigned int i=0; i < words.size(); i++) { parse(words[i], _map); } }
int Compressor::findChar(FrequencyVector& vec, char character, unsigned limit) { for (unsigned i = 0; i < vec.size() && i < limit; i++) { if (vec[i].character == character) return i; } return -1; }