Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2016, 11:01   #1
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию TArray.BinarySearch

Здравствуйте.

Код:
type
  TArrDyn16 = array of UInt16;
...
  List: TArrDyn16;
  Index: Int32;
// Массив в цикле для исключения дубликатов заполняется числами вот так:
if not TArray.BinarySearch<UInt16>(List, k, Index) then
  begin
     SetLength(List, Length(List) + 1);
     List[High(List)] := k;
  end;
...
В k последовательно вводятся числа 1 50 2 50 3 50 4.
На выходе в List получаю 1 50 2 3 4.
В k последовательно вводятся числа 1 50 2 50 3 50 4 50.
На выходе в List получаю 1 50 2 3 4 50.
В чем засада?
avd вне форума Ответить с цитированием
Старый 31.10.2016, 11:29   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

В том, что используется двоичный поиcк -> массив должен быть сортирован
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2016, 11:43   #3
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию

Спасибо!

Код:
if not TArray.BinarySearch<UInt16>(List, k, Index) then
begin
  SetLength(List, Length(List) + 1);
  List[High(List)] := k;
  TArray.Sort<UInt16>(List); // Помогло, однако.:)
end;

Последний раз редактировалось avd; 31.10.2016 в 12:36.
avd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чо за синтаксис? TArray<Cardinal>; black_catt Общие вопросы Delphi 1 27.01.2012 08:57