【发布时间】:2009-11-24 02:12:13
【问题描述】:
我不会详细介绍,但我正在尝试实现类似于Boyer-Moore-Horspool algorithm 的算法,仅使用十六进制颜色值而不是字符(即范围更大)。
按照维基百科上的示例,我最初有这个:
size_t jump_table[0xFFFFFF + 1];
memset(jump_table, default_value, sizeof(jump_table);
然而,0xFFFFFF 显然是一个 巨大 数字,这很快会导致 C 出现段错误(但不是堆栈溢出,令人失望)。
基本上,我需要的是一个高效的关联数组,将整数映射到整数。我正在考虑使用哈希表,但对每个条目都有一个 malloc 的结构对我来说似乎有点过头了(我也不需要生成哈希,因为每个键都是一个唯一的整数,并且不能有重复的条目)。
有没有人可以提出任何替代方案?我是不是太务实了?
更新
对于那些感兴趣的人,我最终通过uthash 库使用了一个哈希表。
【问题讨论】:
标签: c algorithm data-structures