C++STL 体系结构与内核分析(侯捷)——课程笔记(十四)

本部分是课程的最后一部分,前面STL的六大部件已经都介绍完毕,最后的内容包含一些标准库周边的内容,都整理到这里。

目录

一、一个万用的hashfunction

二、tuple

三、type traits

四、cout


一、一个万用的hashfunction

假设定义了一个这样的Customer类:

class Customer{
public:
    string fname, lname;
    int no;
};

那么自定义其哈希函数有三种方式:

//方式一:创建可调用类型
class CustomerHash
{
public:
    std::size_t operator()(const Customer& c) const{
        return ......
    }
};

unordered_set<Customer, CustomerHash> custest;


//方式二:创建哈希函数
size_t customer_hash_func(const Customer& c){
    return ......
}

unordered_set<Customer, size_t(*)(const Customer&)> custest(20, customer_hash_func); //注意这里调用了构造函数的不同版本


//方式三:特化标准库提供的hash<T>
namespace std
{
template<>
struct hash<Customer>
{
    size_t
    operator()(const Customer& c) const noexcept
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值