我们说我有一个清单:
std::list<std::string> list ("the", "the", "friend", "hello", "the");
在这种情况下,列表中最常见的元素是"the"
。有没有办法在C ++中获取这个元素?
谢谢!
答案 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 ),以及用于搜索容器中最大元素的算法。