Я делаю базовую программу для поиска макс, мин, медианы, дисперсии, режима и т. Д. Вектора. Все прошло нормально, пока я не добрался до режима.C++ Помогите найти максимальное значение на карте
Способ, которым я его вижу, должен быть способен прокручивать вектор, и для каждого числа, которое происходит, я увеличиваю ключ на карте. Нахождение ключа с наивысшим значением было бы тем самым самым большим. Сравнение с другими ключами подскажет мне, является ли это одним многократным или нет режима ответа.
Вот кусок кода, который вызывает у меня столько неприятностей.
map<int,unsigned> 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
Большое спасибо, работает отлично. – Sh0gun
Для большой карты должно быть быстрее использовать функцию члена карты (возможно, в сочетании с бинарным поиском), std :: map :: upper_bound? –