0

对于类,我需要创建一个动态扩展的哈希表,当绑定数量达到某些值时扩展 - 509,1021、2039、4093 等。我了解其他所有内容,但我不确定如何检查哪个值表应该扩展到下一个。

我认为我们应该使用枚举,但我不明白如何获得“下一个”枚举值。即,如果我的哈希表当前有 1022 个绑定,我应该将底层数组扩展为 2039,但我怎么知道该怎么做呢?还是我以错误的方式接近这个?

如果这是一个愚蠢的问题,请提前抱歉,但我的书中没有解决它,而且我对 C 语言还是很陌生。

4

1 回答 1

1

您不能在 C 中为此目的使用枚举。

您可能希望将阈值放在一个常量数组中,并维护一个指向当前阈值的索引:

const int thresholds[] = { 509, 1021, 2039, 4093 };

int i_thresh = 0;

...

if (num_elements > thresholds[i_thresh])
{
    i_thresh++;
}
于 2011-10-27T00:33:52.393 回答