Skocz do zawartości

[Lazarus/FPC] ANN: Generics.Collections


HNB

Polecane posty

W końcu skończyłem, nową gorącą bibliotekę do FPC, bardzo kompatybilną z Generics.Collections z Delphi :).

 

FPC i jego typy generyczne są trochę lepsze w porównaniu do Delphi (koncepcyjnie, bo na razie wymagają naprawienia sporej ilości błędów) i są na pograniczu wzorców z C++, dzięki czemu mocno rozszerzyłem możliwości słownika. Po pierwsze są do wyboru metody adresowania: liniowe (domyślne i niezmienne w Delphi), kwadratowe i dwukrotne. Po drugie można zadecydować o rozmiarze hasza.

 

Biblioteka wprowadza nowe typy:

 

TDictionaryList - połączenie słownika i listy (trochę wolniejsze od słownika i szybsze od listy w przypadku przeszukiwania). Cechuje się tym, że pozycje nie są rehaszowane i nie zmieniają swoich pozycji wraz z zwiększającym się rozmiarem słownika.

 

TFastDictionary, TFastList, TFastDictionaryList - Kolejna nowość dostępna tylko ze względu na implementację typów generycznych FPC. Zamiast interfejsów "Comparer" i wywoływaniu metody porównującej dwie pozycje, są wykorzystywane bezpośrednio operatory (czyli jest szybciej :) ). Ofc. Wersje "Fast" są kompatybilne z wersjami pierwotnymi i w chwili przypisania "Comparera" jest on używany zamiast standardowych operatorów.

 

Zwykłe kolekcje w FPC i Delphi (Listy i pokrewne) cechują się innym przyrostem pamięci niż w tej bibliotece. Zamiast standardowo zwiększać/buforować rozmiar list o 2, zwiększa się on o 1.5 (zbliżone do złotej proporcji). Ponoć taki model jest wydajniejszy i stosowany w STL by M$.

 

Więcej info, moją łamaną angielszczyzną na:

 

https://code.google....cs-collections/

 

Pozdr.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...