C++ 哈希表

哈希表(Hash tabel,也叫散列表),是根据关键字值(key)直接进行访问的数据结构,它通过把关键字值映射到表中一个位置(数组下标)来直接访问,以加快查找关键字值的速度。这个映射函数叫做哈希(散列)函数,存放记录的数组叫做哈希(散列)表。
给定表M,存放函数(key),对任意的关键字值key,代入函数后若能得到包含该关键字的表中地址,称表M为哈希(Hash)表,函数f(key)为哈希(Hash)函数。

最简单的哈希-字符哈希:

#include <stdio.h>
#include<string>
int main()
{
 std::string str = "abcdefghijklmnopqrstuvwxyzabdxes";
 int char_map[128] = {0};
 for (int i = 0; i < str.length(); i++)
 {
  char_map[str[i]]++;
 }
 for (int i = 0; i < 128; i++)
 {
  if (char_map[i]>0)
  {
   printf("[%c][%d]:  %d\n", i,i, char_map[i]);
  }
 }
}

运行结果为

[b][98]:  2
[c][99]:  1
[d][100]:  2
[e][101]:  2
[f][102]:  1
[g][103]:  1
[h][104]:  1
[i][105]:  1
[j][106]:  1
[k][107]:  1
[l][108]:  1
[m][109]:  1
[n][110]:  1
[o][111]:  1
[p][112]:  1
[q][113]:  1
[r][114]:  1
[s][115]:  2
[t][116]:  1
[u][117]:  1
[v][118]:  1
[w][119]:  1
[x][120]:  2
[y][121]:  1
[z][122]:  1
发布了79 篇原创文章 · 获赞 62 · 访问量 2203

猜你喜欢

转载自blog.csdn.net/weixin_44208324/article/details/105006434