如何在不使用开关的情况下对字符串进行频率分析
我正在开展一个学校项目,以在文本上实施霍夫曼代码。当然,第一部分需要对文本进行频率分析。除了一个巨大的开关和一系列计数器之外,还有更好的方法吗?
即:
int[] counters
for(int i = 0; i <inString.length(); i++)
{
switch(inString[i])
case 'A':
counters[0]++;
.
.
.
我想做所有字母数字字符和标点符号。我正在使用c++。
I am working a school project to implement a Huffman code on text. The first part of course requires a frequency analysis on the text. Is there a better way aside from a giant switch and an array of counters to do it?
ie:
int[] counters
for(int i = 0; i <inString.length(); i++)
{
switch(inString[i])
case 'A':
counters[0]++;
.
.
.
I would like to do all alpha-numeric characters and punctuation. I am using c++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么不:
Why not:
您可以使用按字符索引的数组:
当然,您还需要将计数器数组初始化为零。
You can use an array indexed by character:
You will also want to initialise your
counters
array to zero, of course.使用地图似乎完全适用:
using a map seems completely applicable: