Tag: hashtable

C字典/地图

我想映射struct成员,这样我就可以消除循环中的分支。 在C中实现此function的最佳方式或约定是什么? 我想它可能是一个二维数组而不是……然后我可以将整数映射到char键? char chunk[32]; int n; int i; char *ptr = config; while (*ptr != ‘\0’) { int items_read = sscanf(ptr, “%31[^;]%n”, chunk, &n); if(chunk[0] == ‘S’ && chunk[1] == ‘P’) { for(i=0;i<GLOBAL_MEAS_CUTOFF; i++) { theMeas[i].signal_path = atoi(&chunk[2]); } } if(chunk[0] == 'T' && chunk[1] == 'L') { for(i=0;i<GLOBAL_MEAS_CUTOFF; i++) { theMeas[i].trace_length = atoi(&chunk[2]); […]

什么是哈希表,你如何在C中创建它?

我对一个称为哈希表(也称为关联数组)的数据结构以及如何在C中实现它有几个问题。 你如何在C中创建哈希表? 什么是哈希表,你如何实现它? 为什么我要使用哈希表而不是数组? 注意:我知道这是一个非常广泛的问题,需要大量的答案,但我这样做是因为我有些人问我这是什么。 所以我把它放在这里,以充分解释它并帮助其他任何人。

跳表切换案例问题

我试图了解跳转表及其在switch case语句之间的关系。 我被告知跳转表是编译器生成的O(1)结构,它使得查找值基本上与您可以获得的速度一样快。 但是在某些情况下,Hashtable / Dictionary可能会更快。 我还被告知这只有在开关盒包含ordered数据值时才有效。 有人可以确认或否认这一点并解释跳转表是什么,它的重要性和时间复杂性与使用字典或散列表相比。 谢谢。