zoukankan      html  css  js  c++  java
  • Delphi中Hash表的使用方法

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fxh7622.blog.51cto.com/63841/16633
    在游戏开发中经常需要保存一些数据结构,并且在使用的时候需要快速的查找出来.Hash表正是为了提高检索速度而设计出来的.下面我就将我在用Delphi开发中使用Hash表的方法写出来,希望对大家有一定的帮助!
    在Delphi中有一个THashedStringlist类,使用这个类可以实现Hash表的操作.使用这个类需要引用IniFiles头文件.
    例如:我们定义的数据结构是:
    RTest = record
    Key:Integer;
    Name:String[20];
    Sex:Boolean;
    Age:Integer;
    end;
    PTest = ^RTest ;
    1:创建Hash表.
    ScHash:=THashedStringlist.Create;
    2:将数据结构加入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表中,则我们将这个结构指针加入到Hash表中.
    3:将数据结构从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;
    以上就是简单的Hash表操作步骤,其中需要注意的是,在使用DELPHI7的使用hash表的时候,一定要安装补丁.
  • 相关阅读:
    haproxy frontend 和backend
    haproxy 页面重定向(域名跳转)
    LWP::Simple 模块
    Perl LWP模块
    错误代码: 1582 Incorrect parameter count in the call to native function 'str_to_date'
    perl 面向对象 -> 符号使用
    跨域访问设置
    mysql 主从复制用户权限限制
    错误代码: 1045 Access denied for user 'skyusers'@'%' (using password: YES)
    sync_relay_log
  • 原文地址:https://www.cnblogs.com/huangjacky/p/1845731.html
Copyright © 2011-2022 走看看