Forum > Third party
LGenerics: yet another generics collection
avk:
As a result of experiments with FPC generics:
https://github.com/avk959/LGenerics
Tested on Windows and Linux.
AlexTP:
Collection of generic algorithms and data structures entirely written in/for FPC and Lazarus. Started as a self-education project, it now seems quite comfortable and fast. In order to use it (FPC 3.1.1 and higher and Lazarus 1.9.0 and higher):
- open and compile package LGenerics/packages/LGenerics.lpk.
- add LGenerics package to project dependencies.
Implemented primitives:
- stack(unit LGStack)
- queue(unit LGQueue)
- deque(unit LGDeque)
- vector(unit LGVector)
- vector of bits(unit LGVector)
- priority queue based on binary heap(unit LGPriorityQueue)
- priority queue with key update and melding based on pairing heap(unit LGPriorityQueue)
- sorted list(unit LGList)
- hashed list - array based list with the ability to fast search by key(unit LGList)
- hashset(unit LGHashSet)
- sorted set(unit LGTreeSet)
- hash multiset(unit LGHashMultiSet)
- sorted multiset(unit LGTreeMultiSet)
- hashmap(unit LGHashMap)
- sorted map(unit LGTreeMap)
- hash multimap(unit LGMultiMap)
- tree multimap(unit LGMultiMap)
- list miltimap(unit LGMultiMap)
- bijective map(unit LGBiMap)
- sparse 2D table(unit LGTable2D)
- disjoint set(unit LGHashSet)
- sparse labeled undirected graph(unit LGSimpleGraph)
- sparse labeled directed graph(unit LGSimpleDigraph)
Blaazen:
Nice. Don't forget to add link to wiki: http://wiki.lazarus.freepascal.org/Components_and_Code_examples
heejit:
If possible add into OPM and a wiki with examples
Thaddy:
@avg
It has a big issue: I assume for speed there is an over-use of {$H-} which not everybody likes, because it limits its applicability.
Compliments, with the restriction that it is nice code, but with niche application because of its reliance on short strings.
I am not even sure the many $H+ and $H- switches over the units are always correct.... or that every string in $H- mode has the guaranteed correct size..
I would not accept that in production code.
Don't let that discourage you, but document the limitation. O:-)
Navigation
[0] Message Index
[#] Next page