Codebeispiele, die die Verwendung jedes nativen H-Lib-Containertyps veranschaulichen.
Codebeispiele, die die Verwendung jedes nativen H-Lib-Containertyps veranschaulichen.
FUNCTION PBMAIN() AS LONG LOCAL q AS LnArr LOCAL i AS LONG LOCAL n AS QUAD q.New q.Push 10 q.Push 20 q.Push 30 n = q.Count ' n = 3 i = q.Get(2) ' i = 20 (1-based PB index) q.Ins 1, 15 ' insert 15 at index 1 q.Sort ' result: 10, 15, 20, 30 q.Del 0 ' remove first element i = q.Pop ' i = 30, q now has [15, 20] q.Final ' auto-cleanup END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL s AS LnStk LOCAL v AS LONG s.Push 100 s.Push 200 s.Push 300 v = s.Peek ' v = 300 v = s.Pop ' v = 300, stack now [100, 200] v = s.Pop ' v = 200 v = s.Pop ' v = 100 ' s.Count = 0 s.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL q AS LnQue LOCAL v AS LONG q.Push 10 ' enqueue q.Push 20 q.Push 30 v = q.Front ' v = 10 v = q.Back ' v = 30 v = q.Pop ' v = 10, queue now [20, 30] v = q.Pop ' v = 20 v = q.Pop ' v = 30 q.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL lst AS LnLst LOCAL node AS QUAD LOCAL v AS LONG lst.Add 10 ' list: [10] lst.Add 20 ' list: [10, 20] lst.AddHead 5 ' list: [5, 10, 20] lst.InsAfter 5, 7 ' insert 7 after value 5 node = lst.GetHead ' first node v = lst.Value(node) ' v = 5 node = lst.Next(node) ' advance to next node v = lst.Value(node) ' v = 7 lst.Remove(node) ' remove node with value 7 lst.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL sb AS SsStr LOCAL s AS STRING LOCAL n AS QUAD sb.Append "Hello" sb.Append " World" n = sb.Length ' n = 11 s = sb.ToString ' s = "Hello World" sb.Ins 6, "PBXB64 " ' insert at position 6 (1-based) s = sb.ToString ' s = "Hello PBXB64 World" sb.Replace "World", "Containers" s = sb.ToString ' s = "Hello PBXB64 Containers" sb.ToUpper s = sb.ToString ' s = "HELLO PBXB64 CONTAINERS" sb.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL m AS Ln2D LOCAL v AS LONG m.Resize 3, 4 ' 3 rows, 4 columns m.Set 1, 1, 42 ' first row and column use index 1 v = m.Get(1, 1) ' v = 42 ' Rows and Cols properties LOCAL r, c AS QUAD r = m.Rows ' r = 3 c = m.Cols ' c = 4 ' Extract a row as 1D array LOCAL rowArr AS LnArr rowArr = m.GetRow(1) m.Final rowArr.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL h AS LnLnHsh LOCAL v AS LONG LOCAL found AS LONG h.Put 1, 100 h.Put 2, 200 h.Put 3, 300 v = h.Get(2) ' v = 200 found = h.Contains(4) ' found = 0 (false) h.Remove 1 ' remove key 1 ' Enumerate keys LOCAL keys AS LnArr keys = h.Keys ' keys = [2, 3] h.Final keys.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL t AS LnLnTre LOCAL v AS LONG LOCAL k AS LONG t.Put 50, 500 t.Put 30, 300 t.Put 70, 700 t.Put 20, 200 t.Put 40, 400 k = t.Min ' k = 20 (smallest key) k = t.Max ' k = 70 (largest key) k = t.Floor(35) ' k = 30 (floor of 35) k = t.Ceil(35) ' k = 40 (ceil of 35) v = t.Get(30) ' v = 300 ' Sorted keys LOCAL keys AS LnArr keys = t.Keys ' keys = [20, 30, 40, 50, 70] t.Final keys.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL h AS LNHEAP LOCAL v AS LONG h = h.New h.Push 30 h.Push 10 h.Push 20 v = h.Peek ' v = 10 (smallest) v = h.Pop ' v = 10, heap now [20, 30] v = h.Pop ' v = 20 h.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL d AS LNDEQUE LOCAL v AS LONG d = d.New d.PushBack 10 d.PushFront 5 d.PushBack 15 v = d.PeekFront ' v = 5 v = d.PeekBack ' v = 15 v = d.PopFront ' v = 5 v = d.PopBack ' v = 15 d.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL s AS LNSET LOCAL v AS LONG s = s.New s.Add 3 s.Add 1 s.Add 2 s.Add 3 ' duplicate ignored v = s.Count ' v = 3 v = s.First ' v = 1 v = s.Next 1 ' v = 2 v = s.Contains 2 ' non-zero s.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL g AS LNGRAPH LOCAL n AS LONG LOCAL neighbors AS LNARR g = g.New g.AddNode 1 g.AddNode 2 g.AddNode 3 g.AddEdge 1, 2 g.AddEdge 2, 3 n = g.Count ' n = 3 n = g.HasEdge(1, 2) ' non-zero neighbors = g.Neighbors 2 ' neighbors = [1, 3] g.Final neighbors.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL m AS LNMULTISET LOCAL v AS LONG m = m.New m.Add 5 m.Add 5 m.Add 3 v = m.Count ' v = 3 (total elements) v = m.UniqueCount ' v = 2 (distinct values) v = m.Multiplicity 5 ' v = 2 m.Remove 5 ' multiplicity becomes 1 m.RemoveAll 5 ' completely removed m.Final END FUNCTION
FUNCTION PBMAIN() AS LONG
LOCAL uf AS LNUNIONFIND
LOCAL v AS LONG
uf = uf.New
uf.MakeSet 1
uf.MakeSet 2
uf.MakeSet 3
v = uf.SameSet(1, 2) ' v = 0 (false)
uf.Union 1, 2
v = uf.SameSet(1, 2) ' v = non-zero (true)
v = uf.Components ' v = 2 (sets: {1,2}, {3})
uf.Final
END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL cache AS LNLRU LOCAL v AS LONG cache = cache.New 3 ' capacity = 3 cache.Put 1, 100 cache.Put 2, 200 cache.Put 3, 300 cache.Put 4, 400 ' evicts key 1 (oldest) v = cache.Get 2 ' v = 200 v = cache.Contains 1 ' v = 0 (evicted) v = cache.Count ' v = 3 cache.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL r AS LNRING LOCAL v AS LONG r = r.New 3 ' capacity = 3 r.Push 10 r.Push 20 r.Push 30 r.Push 40 ' overwrites 10 v = r.Peek ' v = 20 (oldest remaining) v = r.Pop ' v = 20 v = r.Full ' v = 0 (not full) r.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL sl AS LNSKIPLIST LOCAL v AS LONG sl = sl.New sl.Add 50 sl.Add 30 sl.Add 70 v = sl.First ' v = 30 v = sl.Next 30 ' v = 50 v = sl.Contains 70 ' non-zero sl.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL t AS LNBPTREE LOCAL v AS LONG LOCAL arr AS LNARR t = t.New 4 ' order = 4 t.Add 10 t.Add 20 t.Add 30 t.Add 40 t.Add 50 v = t.First ' v = 10 arr = t.Range 15, 45 ' arr = [20, 30, 40] t.Final arr.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL q AS LNQUAD LOCAL ids AS LNARR LOCAL n AS LONG q = q.New 8 ' max depth = 8 q.Insert 1, 0, 0, 10, 10 q.Insert 2, 5, 5, 15, 15 q.Insert 3, 20, 20, 30, 30 ids = q.Query 4, 4, 12, 12 ' ids = [1, 2] (overlapping boxes) n = q.Count ' n = 3 q.Final ids.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL b AS LNBLOOM LOCAL v AS LONG b = b.New 1000, 0.01 ' capacity 1000, 1% false-positive rate b.Add 42 b.Add 99 b.Add 123 v = b.Contains 42 ' non-zero (definitely present) v = b.Contains 999 ' probably 0 (not added) v = b.ErrorRate ' v = 0.01 b.Final END FUNCTION
FUNCTION PBMAIN() AS LONG LOCAL s AS LNSAFE LOCAL v AS LONG s = s.New s.Push 100 s.Push 200 v = s.Peek ' v = 200 v = s.Pop ' v = 200 v = s.Count ' v = 1 s.Final END FUNCTION
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.