Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
1-53545
Алхимик
2004-02-05 13:07
2004.02.17
TOpenDialog & Dll


1-53539
Draught
2004-02-05 12:38
2004.02.17
Является ли текст датой???


1-53471
Creator
2004-02-06 13:37
2004.02.17
Как зделать процес System ???


1-53502
aga123
2004-02-09 11:53
2004.02.17
fastreport


6-53675
man-1982
2003-12-07 14:57
2004.02.17
Помогите начинающему с web програмитрованием




   Наверх