Data Structures, Containers, Collections/fr: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | + | ## Contents | |
| 2 | + | ||
| 3 | + | * 1 Introduction | |
| 4 | + | * 2 Bibliothèque d'exécution (RTL) | |
| 5 | + | * 3 Libraire de composants libre (FCL) | |
| 6 | + | * 3.1 FCL-Base | |
| 7 | + | * 3.2 FCL-STL | |
| 8 | + | * 4 Lazarus/LCL | |
| 9 | + | * 5 3rd party | |
| 10 | + | ||
| 1 | 11 | ## Introduction | |
| 2 | 12 | ||
| 3 | - | ||
| 13 | + | La plupart des programmes travaillent sur des données, soit en cherchant, en triant, en itérant ou simplement en insérant ou en récupérant. Par conséquent, des moyens de structurer les données, tels les conteneurs et les collections, sont nécessaires. | |
| 4 | 14 | ||
| 5 | - | ||
| 15 | + | Free Pascal est fourni avec de nombreuses structures de données opérant à différents niveaux (RTL, FCL). Il existe par ailleurs des solutions de parties tierces offrant de telles caractéristiques. | |
| 6 | 16 | ||
| 7 | 17 | ## [[RTL|Bibliothèque d'exécution (RTL)]] | |
| 8 | 18 | ||
| 9 | - | ||
| 10 | - | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 15 | - | ||
| 16 | - | ||
| 17 | - | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - | ||
| 19 | + | * Unité [Classes](</index.php?title=Classes/fr&action=edit&redlink=1> "Classes/fr \(page does not exist\)") | |
| 20 | + | * [TList](</index.php?title=TList/fr&action=edit&redlink=1> "TList/fr \(page does not exist\)"): : gère une liste de pointeurs ; peut chercher et trier la liste ; possède une caractéristique de notification d'événement. | |
| 21 | + | * [TFPList](</index.php?title=TFPList/fr&action=edit&redlink=1> "TFPList/fr \(page does not exist\)") : gère une liste de pointeurs ; peut chercher et trier la liste ; n'a pas de notification d'événement ; plus rapide que **TList**. | |
| 22 | + | * [TStrings](</index.php?title=TStrings/fr&action=edit&redlink=1> "TStrings/fr \(page does not exist\)") : gère une liste de chaînes ; peut chercher, sectionner, sauver vers / charger depuis un fichier, stocker des objets, agir comme un tableau associatif, etc. ; est une classe abstraite. | |
| 23 | + | * [TStringList](</index.php?title=TStringList/fr&action=edit&redlink=1> "TStringList/fr \(page does not exist\)") : descendant de **TStrings** ; implémente les méthodes abstraites de **TStrings** ; peut chercher, trier, manipuler les doublons ; possède une caractéristique de notification ; c'est un classe concrète. | |
| 24 | + | * [TBits](</index.php?title=TBits/fr&action=edit&redlink=1> "TBits/fr \(page does not exist\)") : gère une liste de bits (0 or 1) ; utile pour les mappage de bits (pas les pour les formats d'image). | |
| 25 | + | * [[TCollection/fr|TCollection]] et **TCollectionItem** : forment une gestion de base d'articles nommés. | |
| 26 | + | * [[Generics/fr|FGL (Free Generics Library)]] [unité](</index.php?title=fgl_unit/fr&action=edit&redlink=1> "fgl unit/fr \(page does not exist\)") | |
| 27 | + | * [TFPGList](</index.php?title=TFPGList/fr&action=edit&redlink=1> "TFPGList/fr \(page does not exist\)") | |
| 28 | + | * [TFPGObjectList](</index.php?title=TFPGObjectList/fr&action=edit&redlink=1> "TFPGObjectList/fr \(page does not exist\)") | |
| 29 | + | * [TFPGInterfacedObjectList](</index.php?title=TFPGInterfacedObjectList/fr&action=edit&redlink=1> "TFPGInterfacedObjectList/fr \(page does not exist\)") | |
| 30 | + | * [TFPGMap](</index.php?title=TFPGMap/fr&action=edit&redlink=1> "TFPGMap/fr \(page does not exist\)") | |
| 31 | + | * [TFPGMapInterfacedObjectData](</index.php?title=TFPGMapInterfacedObjectData/fr&action=edit&redlink=1> "TFPGMapInterfacedObjectData/fr \(page does not exist\)") | |
| 22 | 32 | ||
| 23 | 33 | ## [[FCL/fr|Libraire de composants libre (FCL)]] | |
| 24 | 34 | ||
| 25 | 35 | ### FCL-Base | |
| 26 | 36 | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - | ||
| 31 | - | ||
| 32 | - | ||
| 33 | - | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - | ||
| 38 | - | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 37 | + | * unité AVL_Tree | |
| 38 | + | * TAVLTree et TAVLTreeNode; voir [AVL Tree](</index.php?title=AVL_Tree/fr&action=edit&redlink=1> "AVL Tree/fr \(page does not exist\)") | |
| 39 | + | * Unité Contnrs | |
| 40 | + | * TFPObjectList | |
| 41 | + | * TObjectList | |
| 42 | + | * TComponentList | |
| 43 | + | * TClassList | |
| 44 | + | * TOrderedList | |
| 45 | + | * TStack | |
| 46 | + | * TObjectStack | |
| 47 | + | * TQueue | |
| 48 | + | * TObjectQueue | |
| 49 | + | * TFPHashList | |
| 50 | + | * TFPHashObjectList | |
| 51 | + | * TFPDataHashTable | |
| 52 | + | * TFPStringHashTable | |
| 53 | + | * TFPObjectHashTable | |
| 54 | + | * TBucketList | |
| 55 | + | * TObjectBucketList | |
| 46 | 56 | ||
| 47 | 57 | ### FCL-STL | |
| 48 | 58 | ||
| 49 | - | ||
| 50 | - | ||
| 51 | - | ||
| 52 | - | ||
| 53 | - | ||
| 54 | - | ||
| 55 | - | ||
| 56 | - | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | - | ||
| 61 | - | ||
| 62 | - | ||
| 63 | - | ||
| 64 | - | ||
| 65 | - | ||
| 66 | - | ||
| 67 | - | ||
| 68 | - | ||
| 59 | + | * GVector unit | |
| 60 | + | * TVector: Implements dynamically self-resizing array, item order is based on insertion order | |
| 61 | + | * GSet unit | |
| 62 | + | * TSet: Implements red-black tree backed set, no order is guaranteed | |
| 63 | + | * GHashSet unit | |
| 64 | + | * THashSet: Implements hashtable backed set, no order is guaranteed | |
| 65 | + | * GStack unit | |
| 66 | + | * TStack: Implements stack, LIFO (last in first out) order | |
| 67 | + | * GQueue unit | |
| 68 | + | * TQueue: Implements stack, items are pushed from front, FIFO (first in first out) order | |
| 69 | + | * GPriorityQueue unit | |
| 70 | + | * TPriorityQueue: Implements heap backed priority queue, order is based on given compare function | |
| 71 | + | * GDeQue unit | |
| 72 | + | * TDeque: Implements double ended queue, items can be pushed and popped from either front or back | |
| 73 | + | * GMap unit | |
| 74 | + | * TMap: Implements TSet (and therefore, red-black tree) backed map | |
| 75 | + | * GHashMap unit | |
| 76 | + | * THashMap: Implements hashtable backed map | |
| 77 | + | * GTree unit | |
| 78 | + | * TTree: Implements k-ary tree, supports depth first and breadth first traversal | |
| 69 | 79 | ||
| 70 | 80 | ## Lazarus/LCL | |
| 71 | 81 | ||
| 72 | - | ||
| 82 | + | * AvgLvlTree: Versions étendues de FPC/FCL TAVLTree et TAVLTreeNode; voir [[AVL Tree]] | |
| 73 | 83 | ||
| 74 | 84 | ## 3rd party | |
| 75 | 85 | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - | ||
| 81 | - | ||
| 82 | - | ||
| 83 | - | ||
| 84 | - | ||
| 85 | - | ||
| 86 | - | ||
| 87 | - | ||
| 88 | - | ||
| 89 | - | ||
| 90 | - | ||
| 91 | - | ||
| 92 | - | ||
| 93 | - | ||
| 94 | - | ||
| 95 | - | ||
| 96 | - | ||
| 97 | - | ||
| 98 | - | ||
| 99 | - | ||
| 100 | - | ||
| 101 | - | ||
| 102 | - | ||
| 103 | - | ||
| 104 | - | ||
| 86 | + | project | license | generic | types | notes | |
| 87 | + | ---|---|---|---|--- | |
| 88 | + | [Containers library for Lazarus](<https://github.com/CynicRus/CL4L>) | ?? | Non | al,rb,hm,hs,ll,q,s,v | portage de Container, bibliothèque Delphi du domaine public | |
| 89 | + | [heContnrs](<http://code.google.com/p/fprb/wiki/heContnrs>) | BSD3 | Oui | ... | ... | |
| 90 | + | [Fundamentals](<http://fundementals.sourceforge.net/>) | BSD | Non | ... | dans Utils/cDataStructs.pas | |
| 91 | + | [RBS AntiDOT](<http://sourceforge.net/projects/adot/>) | GPLv2 | ?? | ... | ... | |
| 92 | + | [LightContainers](<http://www.stack.nl/~marcov/lightcontainers.zip>) | FPC | Non+Oui | ... | Variantes génériques et non-génériques. (Delphi n'optimise pas les génériques). Plutôt de bas-niveau | |
| 93 | + | [DeCAL](<http://svn.freepascal.org/svn/fpcprojects/contrib/decal/>) | MPL | Non | ... | [browse](<http://svn.freepascal.org/cgi-bin/viewvc.cgi/contrib/decal/?root=fpcprojects>) variantes + interfaces, relativement lent. | |
| 94 | + | [hovadur DeCAL](<https://bitbucket.org/hovadur/decal>) | MPL | Non | al, as, ll, rb, hm, hs, tm, ts, bs | [guide.pdf](<https://bitbucket.org/hovadur/decal/src/b0649ae41d228c9b8878be9aab958ce779044d48/guide.pdf?at=default>) DeCAL fonctionne dans Lazarus (windows 64 bit/32 bit, linux 64 bit/32 bit) and Delphi7, Delphi XE2. | |
| 95 | + | [[StringHashMap]] | MPL1.0 | ?? | ... | portage de code de la JCL | |
| 96 | + | [GContnrs](<http://yann.merignac.free.fr/unit-gcontnrs.html>) | LGPLv2 + linking exception | Oui | v, hm, hs, ll, q, dq, s, ts, tm, bs | ... | |
| 97 | + | [CL4fpc](<https://sourceforge.net/projects/cl4fpc/>) | GPLv2 | Oui | ... | ... | |
| 98 | + | code | data type | |
| 99 | + | ---|--- | |
| 100 | + | al | array list | |
| 101 | + | as | array set | |
| 102 | + | rb | red-black tree | |
| 103 | + | hm | hashmap | |
| 104 | + | hs | hashset | |
| 105 | + | ll | linked list | |
| 106 | + | q | queue | |
| 107 | + | dq | dequeue | |
| 108 | + | s | stack | |
| 109 | + | v | vector | |
| 110 | + | tm | treemap | |
| 111 | + | ts | treeset | |
| 112 | + | bs | bitset | |
| 105 | 113 | ||
| 106 | 114 | --- | |
| 107 | - | ||
| 108 | - | ||
| 109 | - | ||
| 110 | - | ||
| 111 | - | ||
| 112 | - | ||
| 113 | - | ||
| 115 | + | *From the Free Pascal wiki, page "Data Structures, Containers, Collections/fr", as the Internet Archive kept it on 2022-10-01. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
