Advertisement

C++中的unorderd容器支持自定义哈希函数

阅读量:

unordered_map的定义如下:

复制代码
    template<class Key,
    class Ty,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<std::pair<const Key, Ty> > >
    class unordered_map;
    > class unordered_map
    
    
    
      
      
      
      
      
      
      
      
    

第一个参数用于保存键值。

第二个参数用于存储对应的映射值。

第三个参数是一个哈希函数的函数对象,该对象以键为输入,并通过其内部的哈希函数生成一个类型为size_t的唯一哈希值。默认情况下,使用的是std::hash< key >。

第四个参数是一个等价性判断函数的函数对象,其通过重载的等号操作符’=='来比较两个键是否相等,返回一个布尔类型的值。默认情况下采用的是std::equal_to< key >。

当需要使用哈希功能时,若目标类型并非STL标准库中已定义的类型,例如某个用户自定义的类,此时将无法直接使用STL提供的默

全部评论 (0)

还没有任何评论哟~