Получить следующее значение перечисления в C? - PullRequest
0 голосов
/ 27 октября 2011

Для класса мне нужно создать динамически расширяющуюся хеш-таблицу, которая расширяется, когда число привязок достигает определенных значений - 509,1021, 2039, 4093 и т. Д. Я понимаю почти все остальное, но не знаю, как проверитькакое значение таблица должна расширить до следующего.

Я думаю, что мы должны использовать перечисления, но я не понимаю, как получить «следующее» значение перечисления.То есть, если моя хеш-таблица в настоящее время имеет 1022 привязки, я должен расширить базовый массив до размера 2039, но как мне узнать, как это сделать?Или я подхожу к этому неправильно?

Извините заранее, если это глупый вопрос, но он не рассматривается в моей книге, и я все еще очень нов, когда речь идет о C.

1 Ответ

1 голос
/ 27 октября 2011

Вы не можете использовать перечисления для этой цели в C.

Возможно, вы хотите поместить пороговые значения в постоянный массив и поддерживать индекс для указания текущего порогового значения:

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

int i_thresh = 0;

...

if (num_elements > thresholds[i_thresh])
{
    i_thresh++;
}
...