PBXB64 enthält eine native Containerbibliothek. PB-Containervariablen werden automatisch initialisiert und beim Verlassen ihres Gültigkeitsbereichs automatisch finalisiert.
PBXB64 enthält eine native Containerbibliothek. PB-Containervariablen werden automatisch initialisiert und beim Verlassen ihres Gültigkeitsbereichs automatisch finalisiert.
Typ: Sprachfunktion | Kategorie: Native H-Lib-Container
PBXB64-Status: VERFÜGBAR – 23 FAMILIEN · 136 TYPSCHLÜSSELWÖRTER
PBXB64-Zertifizierung: [ZERTIFIZIERT GETESTET]
q.Push 5, n = q.Count (Methodenversand)a[1] = 100, n = h["key"] (Indexzugriff)c_hlib_lnarr_add(q, 5) über pbxb64/hlib.h
| Familie | PB-Typ | Beschreibung | Hilfeseite |
|---|---|---|---|
| 2D-Array | LN2D (+ 12 Varianten) | Zweidimensionales dynamisches Array mit Zeilen, Spalten und rechteckigen Operationen. | 2D-Methoden |
| Array | LNARR (+ 12 Varianten) | Dynamisches Array mit Push, Pop, Einfügen, Löschen, Sortieren, indiziertem Zugriff und UDT-Nutzlast. | Arr-Methoden |
| Bloom-Filter | LNBLOOM | Probabilistischer LONG-Mitgliedschaftstest ohne falsch-negative Ergebnisse und einstellbarer Falsch-Positiv-Rate. | cmd_hlib_bloom |
| B+-Baum | LNBPTREE | Geordnete Menge mit hohem Verzweigungsgrad, Bereichsabfragen und sortierter Ausgabe. | cmd_hlib_bptree |
| Deque | LNDEQUE | Doppelendige Warteschlange mit Push- und Pop-Operationen an beiden Enden. | cmd_hlib_deque |
| Double Tree | WSWSDTRE | Geordneter Schlüssel-Wert-Baum von WSTRING nach WSTRING. | DTre-Methoden |
| Graph | LNGRAPH | Ungerichteter Graph mit LONG-Knoten-IDs, Adjazenzabfragen und Nachbarlisten. | cmd_hlib_graph |
| Hashtabelle | LNLNHSH und weitere Varianten | Schlüssel-Wert-Speicher mit Einfügen, Suchen, Entfernen und Aufzählen. | Hsh-Methoden |
| Heap | LNHEAP | Binärer Min-Heap und Prioritätswarteschlange. | cmd_hlib_heap |
| Verkettete Liste | LNLST (+ 12 Varianten) | Doppelt verkettete Liste mit Knotendurchlauf sowie Einfügen und Entfernen an Knoten. | Lst-Methoden |
| LRU-Cache | LNLRU | Begrenzter Cache mit LONG-Schlüsseln und -Werten; verdrängt den am längsten nicht verwendeten Eintrag. | cmd_hlib_lru |
| Multiset | LNMULTISET | Multimenge aus LONG-Werten mit Anzahl je Wert. | cmd_hlib_multiset |
| Quadtree | LNQUAD | Räumlicher Index für LONG-Begrenzungsrahmen. Effiziente 2D-Bereichs- und Punktabfragen. | cmd_hlib_quadtree |
| Warteschlange | LNQUE (+ 12 Varianten) | FIFO-Warteschlange mit Push-, Pop-, Peek-, Front- und Back-Operationen. | Que-Methoden |
| Ringpuffer | LNRING | Ringpuffer mit fester Kapazität. Bei vollem Puffer überschreibt Push den ältesten Wert. | cmd_hlib_ring |
| Thread-sicherer Stack | LNSAFE | Mutex-geschützter LONG-Stack. | cmd_hlib_safe |
| Set | LNSET | Sortierte Menge eindeutiger LONG-Werte. | cmd_hlib_set |
| SkipList | LNSKIPLIST | Probabilistische geordnete Menge mit durchschnittlich logarithmischen Operationen. | cmd_hlib_skiplist |
| Stapel | LNSTK (+ 12 Varianten) | LIFO-Stack mit Push-, Pop- und Peek-Operationen. | Stk-Methoden |
| String Builder | SSSTR, WSSTR | Veränderbarer String-Builder mit Anhängen, Einfügen, Löschen, Ersetzen und Zeichenzugriff. | Str-Methoden |
| Baum | LNLNTRE und weitere Varianten | Selbstausgleichender AVL-Baum mit geordneten Schlüssel-Wert-Paaren sowie Min/Max/Floor/Ceil. | Tre-Methoden |
| Trie | SSSSTRI | Präfixbaum von STRING nach STRING mit Präfixsuche und Autovervollständigung. | Tri-Methoden |
| Union-Find | LNUNIONFIND | Disjunkte Mengen-/Union-Find-Struktur. Nahezu zeitkonstante Vereinigung und Suche. | cmd_hlib_unionfind |
Die typisierten Familien verwenden die folgenden 13 Elementtypen. Insgesamt erkennt H-Lib 136 Typschlüsselwörter. EXTENDED und CURRENCYX sind undurchsichtige hochpräzise Werte und keine gewöhnlichen DOUBLE-Werte.
| Suffix | PB-Typ | Größe | Suffix | PB-Typ | Größe |
|---|---|---|---|---|---|
| Bt | BYTE | 1 Byte | Sn | SINGLE | 4 Byte |
| In | INTEGER | 2 Byte | Db | DOUBLE | 8 Byte |
| Wd | WORD | 2 Byte | Cu | CURRENCY | 8 Byte |
| Dw | DWORD | 4 Byte | Cx | CURRENCYX | 16 Byte |
| Ln | LONG | 4 Byte | Ex | EXTENDED | 10 Byte |
| Qd | QUAD | 8 Byte | SS | STRING (ANSI) | Zeigergroß |
| Ws | WSTRING (Unicode) | Zeigergroß |
Arr: BTARR, INARR, WDARR, LNARR, DWARR, QDARR, SNARR, DBARR, CUARR, CXARR, EXARR, SSARR, WSARR, OJARR.
Stk: BTSTK, INSTK, WDSTK, LNSTK, DWSTK, QDSTK, SNSTK, DBSTK, CUSTK, CXSTK, EXSTK, SSSTK, WSSTK.
Que: BTQUE, INQUE, WDQUE, LNQUE, DWQUE, QDQUE, SNQUE, DBQUE, CUQUE, CXQUE, EXQUE, SSQUE, WSQUE.
Lst: BTLST, INLST, WDLST, LNLST, DWLST, QDLST, SNLST, DBLST, CULST, CXLST, EXLST, SSLST, WSLST, UTLST.
Str: SSSTR, WSSTR.
2D: BT2D, IN2D, WD2D, LN2D, DW2D, QD2D, SN2D, DB2D, CU2D, CX2D, EX2D, SS2D, WS2D.
Hsh: LNLNHSH, LNCUHSH, LNCXHSH, LNDBHSH, LNDWHSH, LNEXHSH, LNQDHSH, LNSSHSH, LNWSHSH, SSCUHSH, SSCXHSH, SSDBHSH, SSDWHSH, SSEXHSH, SSLNHSH, SSQDHSH, SSSSHSH, WSCUHSH, WSCXHSH, WSDBHSH, WSDWHSH, WSEXHSH, WSLNHSH, WSQDHSH, WSWSHSH, LNUTHSH.
Tre: LNLNTRE, LNCUTRE, LNCXTRE, LNDBTRE, LNDWTRE, LNEXTRE, LNQDTRE, LNSSTRE, LNWSTRE, SSCUTRE, SSCXTRE, SSDBTRE, SSDWTRE, SSEXTRE, SSLNTRE, SSQDTRE, SSSSTRE, WSCUTRE, WSCXTRE, WSDBTRE, WSDWTRE, WSEXTRE, WSLNTRE, WSQDTRE, WSWSTRE, LNUTTRE.
Spezialisiert: WSWSDTRE, SSSSTRI, LNHEAP, LNDEQUE, LNSET, LNGRAPH, LNMULTISET, LNUNIONFIND, LNLRU, LNRING, LNSKIPLIST, LNBPTREE, LNQUAD, LNBLOOM, LNSAFE.
LOCAL c AS LNMULTISET.Final automatisch aufgerufen.lru.New(capacity), ring.New(capacity), bpt.New(order), quad.New(maxDepth) und bloom.New(capacity, errorRate).c.Add 5oderc.Add(5).Capacity, Trim und Clone stehen in allen 23 Familien bereit.LONGoderQUAD; Methoden, die Container zurückgeben, geben ein neues Handle zurück.Der Containerelementtyp kann ein benutzerdefinierter PB sein TYPE:
TYPE Point
x AS LONG
y AS LONG
END TYPE
LOCAL a AS LNARR OF Point
LOCAL p AS Point
LOCAL q AS Point
a.New
p.x = 10 : p.y = 20
a.Push p
q = a.Get(1) ' q is a Point; PB-Indizes sind 1-basiert
Diese Referenzseite soll durch ein fokussiertes Compile- oder Laufzeitbeispiel belegt sein. Das Beispiel soll Eingaben, erwartete Ausgabe oder Exit-Code und erforderliche Windows-Ressourcen oder Include-Dateien nennen.
Allgemeine Übersichtsseiten sollten trotzdem sagen, welche Familie gemeint ist, welche konkreten Befehlsseiten die Implementierung tragen und welche Formen nur der Navigation dienen. So bleibt die Seite detailliert genug, ohne so zu tun, als wäre sie eine vollständige Befehlsreferenz.