diff --git a/.gitattributes b/.gitattributes index 57f6bc62ed..4ffc742d0d 100644 --- a/.gitattributes +++ b/.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 diff --git a/packages/fcl-stl/doc/hashmapexample.pp b/packages/fcl-stl/doc/hashmapexample.pp new file mode 100644 index 0000000000..5c592a2f18 --- /dev/null +++ b/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; + +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. diff --git a/packages/fcl-stl/doc/hashsetexample.pp b/packages/fcl-stl/doc/hashsetexample.pp new file mode 100644 index 0000000000..1a96ac8284 --- /dev/null +++ b/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; + +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. diff --git a/packages/fcl-stl/doc/sortingexample.pp b/packages/fcl-stl/doc/sortingexample.pp index 4aa155909d..645be3378b 100644 --- a/packages/fcl-stl/doc/sortingexample.pp +++ b/packages/fcl-stl/doc/sortingexample.pp @@ -2,7 +2,8 @@ uses garrayutils, gutil, gvector; type vectorlli = specialize TVector; lesslli = specialize TLess; - sortlli = specialize TOrderingArrayUtils; + sortlli = specialize + TOrderingArrayUtils; var data:vectorlli; n,i:longint;