fcl-stl fixes

git-svn-id: trunk@17337 -
This commit is contained in:
vladob 2011-04-18 12:05:09 +00:00
parent f904f41664
commit 80dcd5f937
4 changed files with 25 additions and 13 deletions

View File

@ -3,7 +3,7 @@ uses gmap, gutil;
type lesslli=specialize TLess<longint>;
maplli=specialize TMap<longint, longint, lesslli>;
var data:maplli; i:longint; iterator:maplli.TMSet.PNode;
var data:maplli; i:longint; iterator:maplli.TIterator;
begin
data:=maplli.Create;
@ -11,14 +11,20 @@ begin
for i:=0 to 10 do
data[i]:=10*i;
writeln(data[7]);
data[7] := 42;
{Iteration through elements}
iterator:=data.Min;
while iterator<>nil do begin
writeln(iterator^.Data.Key, ' ', iterator^.Data.Value);
iterator:=data.next(iterator);
end;
repeat
writeln(iterator.Key, ' ', iterator.Value);
iterator.Value := 47;
until not iterator.next;
iterator.Destroy;
writeln(data.FindLess(7)^.Data.Value);
iterator := data.FindLess(7);
writeln(iterator.Value);
iterator.Destroy;
data.Destroy;
end.

View File

@ -3,7 +3,7 @@ uses gset, gutil;
type lesslli=specialize TLess<longint>;
setlli=specialize TSet<longint, lesslli>;
var data:setlli; i:longint; iterator:setlli.PNode;
var data:setlli; i:longint; iterator:setlli.TIterator;
begin
data:=setlli.Create;
@ -13,12 +13,15 @@ begin
{Iteration through elements}
iterator:=data.Min;
while iterator<>nil do begin
writeln(iterator^.Data);
iterator:=data.next(iterator);
end;
repeat
writeln(iterator.Data);
until not iterator.next;
{Don't forget to destroy iterator}
iterator.Destroy;
writeln(data.FindLess(7)^.Data);
iterator := data.FindLess(7);
writeln(iterator.Data);
iterator.Destroy;
data.Destroy;
end.

View File

@ -66,7 +66,7 @@ end;
destructor THashSet.Destroy;
var i:SizeUInt;
begin
for i:=0 to FData.size do
for i:=0 to FData.size-1 do
(FData[i]).Destroy;
FData.Destroy;
end;

View File

@ -1,4 +1,5 @@
{$mode objfpc}
{$ASSERTIONS ON}
unit gvectortest;
@ -35,6 +36,8 @@ begin
data.pushBack(i);
for i:=0 to 10 do
AssertEquals('Wrong data', i, data[i]);
writeln(data[11]);
AssertEquals('Wrong size', 11, data.size);
AssertEquals('IsEmpty', false, data.IsEmpty);