iskander писал(а):Потрясающе веский аргумент из уст человека, прожившего уже почти четверть 21 века и по сию пору считающего хеш-таблицу извращением.
Я не считаю хеш-таблицу извращением просто мне показалось что для этой задачи она избыточна .
Модератор: Модераторы
iskander писал(а):Потрясающе веский аргумент из уст человека, прожившего уже почти четверть 21 века и по сию пору считающего хеш-таблицу извращением.
Alex2013 писал(а):Я не считаю хеш-таблицу извращением просто мне показалось что для этой задачи она избыточна .
function TStringList.Find(const S: string; out Index: Integer): Boolean;
var
L, R, I: Integer;
CompareRes: PtrInt;
begin
Result := false;
Index:=-1;
if Not Sorted then
Raise EListError.Create(SErrFindNeedsSortedList);
// Use binary search.
L := 0;
R := Count - 1;
while (L<=R) do
begin
I := L + (R - L) div 2;
CompareRes := DoCompareText(S, Flist^[I].FString);
if (CompareRes>0) then
L := I+1
else begin
R := I-1;
if (CompareRes=0) then begin
Result := true;
if (Duplicates<>dupAccept) then
L := I; // forces end of while loop
end;
end;
end;
Index := L;
end;
procedure TStringList.CustomSort(CompareFn: TStringListSortCompare);
begin
If (FCount>1) and (FForceSort or (FSortStyle<>sslAuto)) then
begin
Changing;
QuickSort(0,FCount-1, CompareFn);
Changed;
end;
end;
Alex2013 писал(а):Find действительно быстрее IndexOf
Alex2013 писал(а):Возможно все это проще будет сделать через более "низкоуровневый" ТList
Alex2013 писал(а):По поводу дженериков: что-то я не видел, что их начинают массово применять в новых релизах LCL что (ИМХО) плохой знак.
iskander писал(а):Да, и желательно на ассемблере.
iskander писал(а):Вангую: если Абракадабре вдруг вздумается переписать свой легаси VCL на генериках, то вполне можешь и увидеть. Но это вряд ли.
iskander писал(а):Так что без особой нужды юзать "не устоявшуюся технологию" (ИМХО) так себе идея .
Alex2013 писал(а):сегодня поддержка джнериков есть, а завтра её может не быть или появится их свершено новая версия (как уже бывало )
iskander писал(а):А разве было такое? Что-то не могу припомнить.
Alex2013 писал(а):По поводу дженериков: что-то я не видел, что их начинают массово применять в новых релизах LCL что (ИМХО) плохой знак.
Alex2013 писал(а):Было при переходе к третей версии FPC (или 3.2.0) и когда была мода на странные тральные версии типа 3.2.1 и т.п.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3