C++候捷stl-视频笔记4

06-09 1046阅读

一个万用的hash function

C++候捷stl-视频笔记4

哈希函数的形式,一种是一般函数(右边),一种是成员函数(左边),类的对象将成为函数对象

C++候捷stl-视频笔记4

具体做法例子。直接把属性的所有hash值加起来,会在hashtable中会产生很多的碰撞,放在同一个bucket中的元素会多

另一种是使用可变模板参数来做的hash_val()函数,产生种子,经过复杂的操作,得到hash值。

版本1接受任意个数模版参数,版本2函数参数第一个是size_t(版本1产生的seed),重复调用版本2,直到剩一个模版参数,调用版本3

C++候捷stl-视频笔记4

利用struct hash的偏特化来实现hash function

C++候捷stl-视频笔记4

特化实现例子

Tuple用例

C++候捷stl-视频笔记4

tuple用法示例

C++候捷stl-视频笔记4

tuple 继承 tuple

通过递归定义使得 tuple 类模板可以方便地处理可变数量的模板参数,每一层递归处理一个参数。这也是元编程中常见的技术,通过递归和继承来处理可变数量的参数。

type traits

C++候捷stl-视频笔记4

默认的 __type_traits 进行了一系列泛化的设定

C++候捷stl-视频笔记4

C++候捷stl-视频笔记4

C++候捷stl-视频笔记4

C++候捷stl-视频笔记4

traits测试例子

type traits实现

is_void

C++候捷stl-视频笔记4

// 通过范围偏特化实现remove const
template 
struct remove_const
{ typedef _Tp type };
template 
struct remove_const
{ typedef _Tp type };
// remove volatile 同理

is_integral

C++候捷stl-视频笔记4

cout

C++候捷stl-视频笔记4

各种类对

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]