Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-53756
}|{yk
2004-01-30 12:57
2004.02.17
Академическая лицензия для WinXP


6-53679
Shaman O Mega
2003-10-23 14:39
2004.02.17
ip в TIdTCPServer при подключение клиента


9-53347
greenrul
2003-08-08 00:43
2004.02.17
Покритикуйте идею игры.


1-53497
Алексей
2004-02-06 08:14
2004.02.17
массив форм


14-53728
Daniel
2004-01-28 20:31
2004.02.17
SIMM-SIMM отдайся! Отдастся или нет?