Главная страница
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.018 c
3-53411
Санек
2004-01-26 11:54
2004.02.17
Как сделать чтобы GotoBookmark не менял грид ?


7-53780
Геннадий
2003-11-21 08:02
2004.02.17
Запуск прогаммы с привилегиями администратора


4-53817
QUSTION
2003-12-12 12:19
2004.02.17
МОЖНО ЛИ В WIN2000/XP прятать прогу от CTRL+ALT+DELETE ?


3-53425
Lisa
2004-01-25 14:52
2004.02.17
TDBGrid


3-53386
Set
2004-01-26 12:31
2004.02.17
А выбрана ли запись в DBGrid?