Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сравнение двух булевых массивов [D7, XP]


Сатир ©   (2006-11-21 15:28:00) 

есть два булевых массива
a,b:array of boolean;
возможно ли их как-то сравнить без прохождения в цикле по каждому элементу?


TUser   (2006-11-22 07:04:00) [1]


> if CompareMem(a,b,Length(a)) then
> ShowMessage('Both arrays are indentical!')

if length (a) = length (b) then
if CompareMem(@a[0],@b[0],Length(a)*sizeof(a[0])) then
 showmessage ...


Anatoly Podgoretsky   (2006-11-21 22:15:00) [2]


> это если кол-во элементов в массиве меньше 255

Потому что ты как решил?


Наиль   (2006-11-21 18:10:00) [3]

> это если кол-во элементов в массиве меньше 255

Если нужно много, но сэкономить память, то делать наследника от TBits.
Правда, там нужен будет всё тот же CompareMem.


Сатир   (2006-11-21 17:48:00) [4]


> Обычно в таких случаях используется a,b:Set of

это если кол-во элементов в массиве меньше 255


Наиль   (2006-11-21 17:31:00) [5]

> есть два булевых массива
> a,b:array of boolean;

Обычно в таких случаях используется a,b:Set of
Экономия памяти в 8 с лишним раз.


Сатир   (2006-11-21 16:02:00) [6]


> может как-нить сам?

уже:-)


clickmaker   (2006-11-21 15:48:00) [7]


> [3] Сатир   (21.11.06 15:44)

одного вызова функции с тремя параметрами?
может как-нить сам?


Сатир   (2006-11-21 15:47:00) [8]

if CompareMem(a,b,Length(a)) then
ShowMessage('Both arrays are indentical!')
;-)
thnX


Сатир   (2006-11-21 15:44:00) [9]


> CompareMem, если нужно только факт различия установить

можно примерчик, плиииз8-)


clickmaker   (2006-11-21 15:36:00) [10]

CompareMem, если нужно только факт различия установить


DrPass   (2006-11-21 15:34:00) [11]

Вообще без цикла - нельзя. Можно попытаться соптимизировать - использовать packed array, одновременно загружать и сравнивать по четыре элемента... но это все фигня, которой стоит заниматься только если скорость сравнения очень уж критична


Наверх

Титульная страница Поиск, карта сайта Написать письмо