如何获得列表中最常见的元素?

时间:2017-03-20 23:59:02

标签: c++ list elements

我们说我有一个清单:

std::list<std::string> list ("the", "the", "friend", "hello", "the");

在这种情况下,列表中最常见的元素是"the"。有没有办法在C ++中获取这个元素?

谢谢!

1 个答案:

答案 0 :(得分:2)

解决问题的一般算法是构建单词频率字典。这是一个伪代码算法,它正是这样做的:

let L be the input sequence of strings (can be a list, doesn't matter)
let F be an empty dictionary that maps string to a number
for each string S in L
    if not F contains S then
        F[S] = 0
    F[S] += 1

构建字典后,您需要做的就是找到具有最高值的映射,然后返回密钥。

C ++标准库提供了关联容器(又名字典,又名 maps ),以及用于搜索容器中最大元素的算法。