Множества типа Integer

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Множества типа Integer

Сообщение Angel_19 » 23.09.2014 10:40:24

Код в Лазарусе:
Код: Выделить всё
Type
    tSet = Set of Integer;


Выдает ошибку, жалуется на тип Integer. Если использовать тип Byte то все в порядке.
Т.е. множества типа Integer в Лазарус не поддерживаются?
Angel_19
новенький
 
Сообщения: 37
Зарегистрирован: 24.06.2014 17:29:47

Re: Множества типа Integer

Сообщение runewalsh » 23.09.2014 10:53:48

Нет. Множества реализованы как битовые поля, так что set of byte требует 256/8 = 32 байта (8 интеджеров, это тебе не это!). В планах по развитию языка вроде есть set of integer, но когда это ещё будет (если вообще будет: в общем случае такое множество потребует 2^32 бит памяти). Используй хэш-таблицы. В зависимости от задачи, если допустимо «нестрогое» множество с ложноположительными срабатываниями операции in, тебе может быть интересен фильтр Блума.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 224

Рейтинг@Mail.ru
cron