不使用unordered_map库函数
时间: 2024-11-20 13:43:22 浏览: 4
如果你不想使用`unordered_map`库函数,你可以手动维护一个数组(大小取决于要统计的字符集大小,比如ASCII字符集有128个字符)来记录字符频率。以下是一个简单的例子,展示了如何在C++中不依赖库函数完成这个任务:
```cpp
#include <iostream>
#include <cctype>
using namespace std;
const int MAX_CHAR = 128; // ASCII字符集大小
char frequency[MAX_CHAR] = {0}; // 初始化所有字符频率为0
void countChars(const string& input) {
for (char c : input) {
if (isalpha(c)) { // 检查是否为字母
c = tolower(c); // 转换为小写以便统一计数
frequency[c]++;
}
}
}
int main() {
string text = "your_text_here";
countChars(text);
// 输出字符频率
for (int i = 0; i < MAX_CHAR; ++i) {
if (frequency[i] > 0) {
cout << '\'' << static_cast<char>(i) << "\': " << frequency[i] << endl;
}
}
return 0;
}
```
在这个版本中,我们手动实现了字符频率的计算,并通过`isalpha`函数和`tolower`函数处理字符。
阅读全文