Я делал базовую программу для нахождения максимума, минимума, медианы, дисперсии, режима и т. Д. Вектора. Все шло нормально, пока не добрался до режима.
Как я это вижу, я должен иметь возможность перебирать вектор, и для каждого встречающегося числа я увеличиваю ключ на карте. Тогда поиск ключа с наивысшим значением будет наиболее частым. Сравнивая с другими ключами, я могу сказать, является ли это ответ с одним множественным или без режима.
Вот кусок кода, который доставлял мне столько проблем.
map frequencyCount;
// This is my attempt to increment the values
// of the map everytime one of the same numebers
for(size_t i = 0; i < v.size(); ++i)
frequencyCount[v[i]]++;
unsigned currentMax = 0;
unsigned checked = 0;
unsigned maax = 0;
for(auto it = frequencyCount.cbegin(); it != frequencyCount.cend(); ++it )
//checked = it->second;
if (it ->second > currentMax)
{
maax = it->first;
}
//if(it ->second > currentMax){
//v = it->first
cout << " The highest value within the map is: " << maax << endl;
Полную программу можно посмотреть здесь. http://pastebin.com/MzPENmHp