不使用std::unordered_map
时间: 2024-10-25 18:07:46 浏览: 22
如果不想使用`std::unordered_map`,我们可以使用数组或者自定义的结构体来存储每个位以及它们的计数。这里提供一个简单的使用数组的例子:
```cpp
#include <iostream>
struct Count {
int count;
};
int main() {
int num;
std::cout << "请输入一个数字: ";
std::cin >> num;
// 初始化一个大小为10的数组,代表0到9这十个可能的数字
const int MAX_DIGITS = 10;
Count digits[MAX_DIGITS] = { {0} }; // 初始化所有计数为0
while (num > 0) {
int last_digit = num % 10;
digits[last_digit].count++;
num /= 10;
}
std::cout << "数字的各位及其出现次数:\n";
for (int i = 0; i < MAX_DIGITS; ++i) {
if (digits[i].count > 0) {
std::cout << "数字 " << i << " 出现了 " << digits[i].count << " 次\n";
}
}
return 0;
}
```
在这个版本中,我们创建了一个固定大小的数组`digits`来存储每个数字位及其计数。这种方法适用于数字位的数量有限的情况。
阅读全文