Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Работа с множествами   Найти похожие ветки 

 
Olfi   (2003-09-10 11:33) [0]

Поскажите, какими способами можна узнать, какие элементы находятся в множестве

type
TaskKeys = set of Byte;
const
TK : TaskKeys = [];
begin
//1. Этот способ мне подходит больше всего, но не он не срабатывает
case () of
20 : //...
21 : //...
end;
//2.
if 20 in TK then //...
//а ещё?
end;


 
Digitman ©   (2003-09-10 11:39) [1]


> if 20 in TK then ...


если не рассматривать способ доступа к мн-ву средствами встр.ассемблера, то - только так


> а ещё?


а что, этого недостаточно ?


 
pasha_golub ©   (2003-09-10 11:42) [2]

В цикле проверять in


 
PVOzerski ©   (2003-09-10 12:14) [3]

С точке зрения читабельности,
if 20 in TaskKeys then
...
else if 21 in TaskKeys then
...
else if ..
...
else ...
...

почти эквивалентен case (IMHO, конечно, да и оптимизатор не обрадуется). Если же проверяемые значения идут подряд, с инкрементом 1, pasha_golub © (10.09.03 11:42) [2] дал отличный совет. А если ключей немного, иногда проверка и битовым AND может быть уместна.


 
pasha_golub ©   (2003-09-10 12:50) [4]

2PVOzerski
По этому поводу целая ветка была и порешили, что in как раз то, что нужно и выигрыша в других вариантах практически нет



Страницы: 1 вся ветка

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
1-71587
AlexSSS
2003-09-09 19:35
2003.09.22
КАК открыть файл, который лежит на CD


3-71510
konst
2003-09-01 09:35
2003.09.22
Ув. мастера помогите разобраться с MDI формами


1-71642
Vitalik
2003-09-08 21:26
2003.09.22
создание формы


8-71766
e}{e
2003-05-19 00:29
2003.09.22
Как запретить компоненту двигаться по диагонали?


14-71823
iNew
2003-09-02 05:10
2003.09.22
Как в SoftIce поставить брэкпоинт на открытие файла?