• STL HASH_MAP简单应用


    /*
     *用来测试STL hash_map 
     *简单例子2008.5.5
    */
    #include  
    <cstdlib>
    #include  
    <iostream>
    #include  
    <string>
    #include  
    <hash_map.h>/*因为hash_map暂不为CPP标准所以没办法写为<hash_map>*/
    /*-------------------------------------------*/
    using  std::cout;
    using  std::endl;
    using  std::string;
    /*-------------------------------------------*/
    /*函数类
     *作为hash_map的hash函数 
     *string没有默认的hash函数 
     
    */ 
    class str_hash{
          
    public:
           size_t 
    operator()(const string& str) const
            {
                    unsigned 
    long __h = 0;
                    
    for (size_t i = 0 ; i < str.size() ; i ++)
                    __h 
    = 5*__h + str[i];
                    
    return size_t(__h);
            }
    };
    /*-------------------------------------------*/
    /*函数类 
     *作为hash_map的比较函数 )
     *(查找的时候不同的key往往可能对用到相同的hash值
    */ 
    class str_compare
    {
          
    public:
                 
    bool operator()(const string& str1,const string& str2)const
                 {
    return   str1==str2;}
    };
    /*-------------------------------------------*/
    int 
    main(
    int argc, char *argv[])
    {  
        hash_map
    <string,string,str_hash,str_compare>  myhash;
        
        myhash[
    "google"]="newplan";
       
        myhash[
    "baidu"]="zhaoziming";
       
        
    if(myhash.find("google")!=myhash.end())
          cout
    <<myhash["google"]<<endl;
        
        system(
    "PAUSE");
        
        
    return EXIT_SUCCESS;
    }
    /*-------------------------------------------*/

  • 相关阅读:
    Oracle 跨库查询表数据(不同的数据库间建立连接)
    Oracle 跨库查询表数据(不同的数据库间建立连接)
    Win10“启动”文件夹在哪里?如何打开Win10启动文件夹?
    常用[js,css,jquery,html]
    备忘
    常用网站
    常用SQL[ORACLE]
    基于 Promise 的 HTTP 请求客户端 axios
    CSS中字体响应式的设置
    HTML5 History API让ajax能回退到上一页
  • 原文地址:https://www.cnblogs.com/lkskevin/p/2599891.html
Copyright © 2020-2023  润新知