zoukankan      html  css  js  c++  java
  • 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;
    }
    /*-------------------------------------------*/

  • 相关阅读:
    C语言 · 字符串输入输出函数
    C语言 · 判定字符位置
    剑指offer二之替换空格
    剑指offer一之二维数组中的查找
    算法复杂度:时间复杂度与空间复杂度
    二分查找法
    信息熵
    K-means算法的原理、优缺点及改进(转)
    office2013安装与卸载
    Deep Learning (中文版&英文版)
  • 原文地址:https://www.cnblogs.com/lkskevin/p/2599891.html
Copyright © 2011-2022 走看看