Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Внизсравнение двух булевых массивов Найти похожие ветки
← →
Сатир (2006-11-21 15:28) [0]есть два булевых массива
a,b:array of boolean;
возможно ли их как-то сравнить без прохождения в цикле по каждому элементу?
← →
DrPass © (2006-11-21 15:34) [1]Вообще без цикла - нельзя. Можно попытаться соптимизировать - использовать packed array, одновременно загружать и сравнивать по четыре элемента... но это все фигня, которой стоит заниматься только если скорость сравнения очень уж критична
← →
clickmaker © (2006-11-21 15:36) [2]CompareMem, если нужно только факт различия установить
← →
Сатир (2006-11-21 15:44) [3]
> CompareMem, если нужно только факт различия установить
можно примерчик, плиииз8-)
← →
Сатир (2006-11-21 15:47) [4]if CompareMem(a,b,Length(a)) then
ShowMessage("Both arrays are indentical!")
;-)
thnX
← →
clickmaker © (2006-11-21 15:48) [5]
> [3] Сатир (21.11.06 15:44)
одного вызова функции с тремя параметрами?
может как-нить сам?
← →
Сатир (2006-11-21 16:02) [6]
> может как-нить сам?
уже:-)
← →
Наиль © (2006-11-21 17:31) [7]> есть два булевых массива
> a,b:array of boolean;
Обычно в таких случаях используетсяa,b:Set of
Экономия памяти в 8 с лишним раз.
← →
Сатир (2006-11-21 17:48) [8]
> Обычно в таких случаях используется a,b:Set of
это если кол-во элементов в массиве меньше 255
← →
Наиль © (2006-11-21 18:10) [9]> это если кол-во элементов в массиве меньше 255
Если нужно много, но сэкономить память, то делать наследника от TBits.
Правда, там нужен будет всё тот же CompareMem.
← →
Anatoly Podgoretsky © (2006-11-21 22:15) [10]
> это если кол-во элементов в массиве меньше 255
Потому что ты как решил?
← →
TUser © (2006-11-22 07:04) [11]
> 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 ...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.05 c