请用更易懂的代码实现哈希表
时间: 2023-08-31 08:11:35 浏览: 40
当然!以下是使用C++编写的更易懂的代码示例:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
std::unordered_map<int, int> countElements(const std::vector<int>& arr) {
std::unordered_map<int, int> count;
for (int num : arr) {
// 检查哈希表中是否已经存在该数
if (count.find(num) != count.end()) {
// 如果存在,则递增其出现次数
count[num]++;
} else {
// 如果不存在,则将其添加到哈希表,并初始化出现次数为1
count[num] = 1;
}
}
return count;
}
int main() {
std::vector<int> arr = {1, 2, 3, 2, 1, 3, 4, 2, 1};
std::unordered_map<int, int> result = countElements(arr);
for (const auto& pair : result) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
这段代码与之前的示例相似,使用了`std::unordered_map`来实现哈希表。在统计元素出现次数时,我们使用了`count.find(num) != count.end()`来检查哈希表中是否已经存在该数。如果存在,则递增其出现次数;如果不存在,则将其添加到哈希表,并初始化出现次数为1。输出结果与之前一样,表示每个数字在数组中的出现次数。