我想获得每个数字在数组中重复多少次的信息。我正在做这样的事情:
for (int j = 0; j < n; j++){
cin >> x;
arr[x]++;
}
然后我意识到给定的数字可能很大,因为&#34; 521659942&#34;。显然我无法创建具有该大小的数组。
arr[x]++;
这是无效的。那么我该怎么做才能学会每个数字的普遍性呢?
答案 0 :(得分:2)
你基本上使用arr [x]作为std::map<int,int>
。数组的索引是您当前的密钥,您要存储数字。
使用map
并在找到值时输入值。类似的东西:
encounteredNumbers[key]++;
std::unordered_map
和std::map
都在这里工作,choosing between them