C ++如何在向量中查找最常见的元素

时间:2018-10-20 18:22:06

标签: c++

让我们说我们有一个向量: [6,9,17,21,2,4,6,3,6,9,3,12,3]

我如何找到此向量中最常见的元素?

在这种情况下,答案是6和3,它们重复了3次。

此代码找到重复次数最多的第一个。我也需要其他

int max = 0, mostvalue = allDocumentNumbers[0];
                    for (int i = 0;i < allDocumentNumbers.size();i++)
                    {
                        int co = (int)count(allDocumentNumbers.begin(), allDocumentNumbers.end(), allDocumentNumbers[i]);
                        if (co > max)
                        {
                            max = co;
                            mostvalue = allDocumentNumbers[i];
                            cout << "Most value: " + to_string(mostvalue) << endl;

                        }
                    }

1 个答案:

答案 0 :(得分:0)

您可以使用地图:

std::map<int, int> counters;
for(auto i: v)
{
    ++counters[i];
}

然后只需在该图中获得最大值即可。