gpt4 book ai didi

c++ - 查找 map 中的最大值

转载 作者:IT老高 更新时间:2023-10-28 12:32:38 29 4
gpt4 key购买 nike

我一直在做一个基本程序来查找 vector 的最大值、最小值、中值、方差、众数等。在我进入模式之前一切都很好。

按照我的看法,我应该能够循环遍历 vector ,并且对于出现的每个数字,我都会在 map 上增加一个键。找到具有最高值的键将是出现次数最多的键。与其他键比较会告诉我它是单个多重还是无模式答案。

这是给我带来很多麻烦的代码块。

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

最佳答案

您可以使用 std::max_element找到最高的 map 值(以下代码需要 C++11):

std::map<int, size_t> frequencyCount;
using pair_type = decltype(frequencyCount)::value_type;

for (auto i : v)
frequencyCount[i]++;

auto pr = std::max_element
(
std::begin(frequencyCount), std::end(frequencyCount),
[] (const pair_type & p1, const pair_type & p2) {
return p1.second < p2.second;
}
);
std::cout << "A mode of the vector: " << pr->first << '\n';

关于c++ - 查找 map 中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370945/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com