STL hash_map

定义哈希函数和比较函数

#include <hash_map> 
#include <string> 
#include <iostream> 
 using namespace std; 
 //define the class 
struct ClassA
 { 
    ClassA(int a):c_a(a){} 
    int getvalue()const { return c_a;} 
    size_t c_a;     
 };
 //1 define the hash function 
struct hash_A
 { 
     enum   
     {   //   parameters   for   hash   table   
        bucket_size  =2 , 
        min_buckets   =4
     };   

     size_t operator()(const class ClassA & A)const
     { 
         return  A.getvalue()%min_buckets;
     } 
 //2 define the equal function 
     bool operator()(const class ClassA & a1, const class ClassA & a2)const
     { 
         return a1.getvalue()<a2.getvalue();
     } 
 }; 

 int main() 
 { 
     hash_map<ClassA,string, hash_A> hmap; 
     ClassA a1(2); 
     hmap[a1]="I love C++"; 
     ClassA a2(56); 
     hmap[a2]="Do you love it?"; 
     cout<<hmap[a1]<<endl; 
     cout<<hmap[a2]<<endl; 
     return 0; 
 } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值