Текущий архив: 2004.02.17;
Скачать: CL | DM;
Вниз
Множества... Найти похожие ветки
← →
Mikka © (2004-02-06 17:33) [0]Как задать множество....например, вот такое
("Привет","Здравствуйте","Салют")?
Или как быть с....имеется мнодетсво (Привет,Здравствуйте,Салют)
Как проверить вхождение s="Привет" во вышестояшее множество ???
← →
Sandman25 © (2004-02-06 17:35) [1]Никак, множество строк невозможно.
← →
Юрий Зотов © (2004-02-06 17:35) [2]Жмем F1 и читаем, а что же такое есть "множество".
← →
Тимохов © (2004-02-06 17:39) [3]
> Mikka © (06.02.04 17:33)
Штатных средств дельфи для хранения множества строк нет.
Можете сделать сам - TStringList+ методы данного класса IndexOf+Add+Delete
← →
VLAD-MAL (2004-02-06 17:44) [4]Может, это поможет:
const Digits: array[0..2] of string = ("Раз", "Два", "Три");
← →
Mikka © (2004-02-06 17:51) [5]VLAD-MAL (06.02.04 17:44) [4]
Может, это поможет:
ТОгда для проверки вхождения нужно будет прогонять массив в цикле...а для множетсва просто использовать in
← →
VLAD-MAL (2004-02-06 17:57) [6]Используй TStringList, он может сортироваться и быстрый (двоичный) поиск в нем есть.
← →
Digitman © (2004-02-06 18:06) [7]
> для проверки вхождения нужно будет прогонять массив в цикле
оператор IN для поддерживаемых типов множеств при отключенной оптимизации зачастую именно это и делает - прогон в цикле
← →
Mikka © (2004-02-06 18:12) [8]придется использовать массивы
← →
Goida © (2004-02-06 18:33) [9]
> Mikka
> ТОгда для проверки вхождения нужно будет прогонять массив
> в цикле...а для множетсва просто использовать in
Так оно кажется на первый взгляд. Как, по твоему, он это делает? Все разом проверяет?
← →
Тимохов © (2004-02-06 18:37) [10]
> Так оно кажется на первый взгляд. Как, по твоему, он это
> делает? Все разом проверяет?
Это зависит от типа множества.
type
скоррее всего одной командой проверять будет
s: set of byte;
begin
if 34 in s then ...
end;
← →
Sandman25 © (2004-02-06 18:40) [11][10] Тимохов © (06.02.04 18:37)
По-моему, одна команда будет только если 32 члена максимум. То есть, например
var
A: set of (a1,a2,a3...a32);
if a2 in A then.
Для set of byte так не получится ИМХО
← →
Тимохов © (2004-02-06 18:42) [12]Sandman25 © (06.02.04 18:40) [11]
var
s: set of byte;
begin
if 45 in s then showmessage("1")
end
еквивалетно
test byte ptr [ebp-$23],$20
jz +$0a
mov eax,$00456668
call ShowMessage
← →
Sandman25 © (2004-02-06 18:43) [13][12] Тимохов © (06.02.04 18:42)
Виноват. Признаю :)
Страницы: 1 вся ветка
Текущий архив: 2004.02.17;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.017 c