成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

Delphi中Hash表的使用方法

2010-08-28 10:50:52來源:西部e網(wǎng)作者:

    在游戲開發(fā)中經(jīng)常需要保存一些數(shù)據(jù)結(jié)構(gòu),并且在使用的時候需要快速的查找出來.Hash表正是為了提高檢索速度而設(shè)計出來的.下面我就將我在用Delphi開發(fā)中使用Hash表的方法寫出來,希望對大家有一定的幫助!

  在Delphi中有一個THashedStringlist類,使用這個類可以實(shí)現(xiàn)Hash表的操作.使用這個類需要引用IniFiles頭文件.

  例如:我們定義的數(shù)據(jù)結(jié)構(gòu)是:

以下是引用片段:
  RTest = record
  Key:Integer;
  Name:String[20];
  Sex:Boolean;
  Age:Integer;
  end;
  PTest = ^RTest ;
  1:創(chuàng)建Hash表.
  ScHash:=THashedStringlist.Create;
  2:將數(shù)據(jù)結(jié)構(gòu)加入Hash表中.
  var
  Index:Integer;
  p_Test:PTest;
  Index:=ScHash.IndexOf(IntToStr(p_Test.Key));
  if Index=-1 then
  begin
  ScHash.AddObject(IntToStr(p_Test.Key),TObject(Integer(p_Test)));
  end;

  在加入Hash表的時候,首先我們檢查看這個Key是否在Hash表中,如果Index=-1則說明此Key不在Hash表中,則我們將這個結(jié)構(gòu)指針加入到Hash表中.

  3:將數(shù)據(jù)結(jié)構(gòu)從Hash表中刪除.

以下是引用片段:
  var
  Index:Integer;
  t_Object: TObject;
  Index:=ScHash.IndexOf(IntToStr(p_Test.Key));
  if Index<>-1 then
  begin
  t_Object:=ScHash.Objects[Index];
  ScHash.Delete(Index);
  end;

  4:刪除Hash表

  在刪除Hash表的時候和一般的Tlist刪除一樣,使用Free.

  ScHash.Free;

關(guān)鍵詞:DelphiHash

贊助商鏈接:

主站蜘蛛池模板: 富蕴县| 泰顺县| 白玉县| 来安县| 达拉特旗| 西丰县| 台南市| 南乐县| 油尖旺区| 乌审旗| 清新县| 山丹县| 万山特区| 容城县| 惠州市| 洞口县| 白朗县| 吴堡县| 和政县| 苍梧县| 外汇| 石阡县| 登封市| 安国市| 淮安市| 徐水县| 高要市| 龙泉市| 乐陵市| 遂川县| 沙雅县| 北宁市| 衢州市| 肃北| 开封市| 吉林市| 西华县| 淳化县| 石狮市| 珠海市| 紫金县|