Текущий архив: 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.44 MB
Время: 0.01 c