Ver código fonte

new examples for fcl-stl

git-svn-id: trunk@19053 -
vladob 14 anos atrás
pai
commit
76b511bec5

+ 2 - 0
.gitattributes

@@ -2328,6 +2328,8 @@ packages/fcl-stl/Makefile.fpc svneol=native#text/plain
 packages/fcl-stl/doc/arrayutils.tex svneol=native#text/plain
 packages/fcl-stl/doc/deque.tex svneol=native#text/plain
 packages/fcl-stl/doc/dequeexample.pp svneol=native#text/plain
+packages/fcl-stl/doc/hashmapexample.pp svneol=native#text/plain
+packages/fcl-stl/doc/hashsetexample.pp svneol=native#text/plain
 packages/fcl-stl/doc/main.tex svneol=native#text/plain
 packages/fcl-stl/doc/makra.tex svneol=native#text/plain
 packages/fcl-stl/doc/map.tex svneol=native#text/plain

+ 35 - 0
packages/fcl-stl/doc/hashmapexample.pp

@@ -0,0 +1,35 @@
+{$mode objfpc}
+
+uses ghashmap;
+
+type hashlli=class
+       public
+       class function hash(a:longint; b:SizeUInt):SizeUInt;
+     end;
+     maplli=specialize THashMap<longint, longint, hashlli>;
+
+class function hashlli.hash(a:longint; b:SizeUInt):SizeUInt;
+begin
+  hash:= a mod b;
+end;
+
+var data:maplli; i:longint; iterator:maplli.TIterator;
+
+begin
+  data:=maplli.Create;
+
+  for i:=0 to 10 do
+    data[i] := 17*i;
+
+  data.delete(5);
+
+  {Iteration through elements}
+  iterator:=data.Iterator;
+  repeat
+    writeln(iterator.Key, ' ', iterator.Value);
+  until not iterator.Next;
+  {Don't forget to destroy iterator}
+  iterator.Destroy;
+
+  data.Destroy;
+end.

+ 33 - 0
packages/fcl-stl/doc/hashsetexample.pp

@@ -0,0 +1,33 @@
+{$mode objfpc}
+
+uses ghashset;
+
+type hashlli=class
+       public
+       class function hash(a:longint; b:SizeUInt):SizeUInt;
+     end;
+     setlli=specialize THashSet<longint, hashlli>;
+
+class function hashlli.hash(a:longint; b:SizeUInt):SizeUInt;
+begin
+  hash:= a mod b;
+end;
+
+var data:setlli; i:longint; iterator:setlli.TIterator;
+
+begin
+  data:=setlli.Create;
+
+  for i:=0 to 10 do
+    data.insert(i);
+
+  {Iteration through elements}
+  iterator:=data.Iterator;
+  repeat
+    writeln(iterator.Data);
+  until not iterator.Next;
+  {Don't forget to destroy iterator}
+  iterator.Destroy;
+
+  data.Destroy;
+end.

+ 2 - 1
packages/fcl-stl/doc/sortingexample.pp

@@ -2,7 +2,8 @@ uses garrayutils, gutil, gvector;
 
 type vectorlli = specialize TVector<longint>;
      lesslli = specialize TLess<longint>;
-     sortlli = specialize TOrderingArrayUtils<vectorlli, longint, lesslli>;
+     sortlli = specialize 
+         TOrderingArrayUtils<vectorlli, longint, lesslli>;
 
 var data:vectorlli; n,i:longint;