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

Delphi中Hash表的使用方法

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

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

  在Delphi中有一個(gè)THashedStringlist類(lèi),使用這個(gè)類(lèi)可以實(shí)現(xiàn)Hash表的操作.使用這個(gè)類(lèi)需要引用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表的時(shí)候,首先我們檢查看這個(gè)Key是否在Hash表中,如果Index=-1則說(shuō)明此Key不在Hash表中,則我們將這個(gè)結(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表的時(shí)候和一般的Tlist刪除一樣,使用Free.

  ScHash.Free;

關(guān)鍵詞:DelphiHash

贊助商鏈接:

主站蜘蛛池模板: 巴中市| 临安市| 交城县| 宿州市| 绥中县| 香港 | 朝阳市| 湖北省| 玛纳斯县| 定兴县| 陈巴尔虎旗| 丰镇市| 正宁县| 台中市| 茌平县| 托克托县| 田林县| 达拉特旗| 会泽县| 瑞安市| 晋宁县| 沙河市| 梅州市| 泸定县| 白银市| 大连市| 霞浦县| 资溪县| 綦江县| 阳谷县| 太康县| 临海市| 宁国市| 泰顺县| 茂名市| 昔阳县| 汝州市| 永和县| 文昌市| 昆山市| 三台县|