C++ 如何获得数组中每个数字的优先级?

C++ 如何获得数组中每个数字的优先级?,c++,arrays,loops,sorting,C++,Arrays,Loops,Sorting,我想知道每个数字在数组中重复了多少次。我是这样做的: for (int j = 0; j < n; j++){ cin >> x; arr[x]++; } 这是无效的。那么,我应该怎么做才能了解每个数字的优先级呢?您实际上是在使用arr[x]作为一个函数。数组的索引是您当前存储数字的密钥 使用映射并在找到值时输入值。比如: encounteredNumbers[key]++; std::unordered_map和std::map都在

我想知道每个数字在数组中重复了多少次。我是这样做的:

for (int j = 0; j < n; j++){
        cin >> x;
        arr[x]++;
    }

这是无效的。那么,我应该怎么做才能了解每个数字的优先级呢?

您实际上是在使用arr[x]作为一个函数。数组的索引是您当前存储数字的密钥

使用
映射
并在找到值时输入值。比如:

encounteredNumbers[key]++;

std::unordered_map
std::map
都在这里工作,

首先根据数组的大小检查它的值。您看到了吗?感谢mate,它工作了,但是每当输入一个以前输入的数字时,我猜它不会计算新的数字。我认为multimap就是为了这个目的而设计的,但我无法在我的代码中实现它。地图intmap;intmap[x]++;这是可行的,但这不是。多重地图;intmap[x]++;答案中包含的全部内容可以缩短为
遇到的数字[key]++
@K.Yazoglu它工作,因为count()如果已经输入了值,则返回1,否则返回0。此代码仅用于输入数据。它不计算发生的次数。您必须在稍后的代码中自己完成这项工作。
encounteredNumbers[key]++;