reinterpret_cast应用
2024-10-18 22:27:53
reinterpret_cast 的一个实际用途是在哈希函数中,即,通过让两个不同的值几乎不以相同的索引结尾的方式将值映射到索引。
#include <iostream>
using namespace std; // Returns a hash code based on an address
unsigned short Hash( void *p ) {
unsigned int val = reinterpret_cast<unsigned int>( p );
return ( unsigned short )( val ^ (val >> 16));
} using namespace std;
int main() {
int a[20];
for ( int i = 0; i < 20; i++ )
cout << Hash( a + i ) << endl;
} Output:
64641
64645
64889
64893
64881
64885
64873
64877
64865
64869
64857
64861
64849
64853
64841
64845
64833
64837
64825
64829
reinterpret_cast 允许将指针视为整数类型。结果随后将按位移位并与自身进行“异或”运算以生成唯一的索引(具有唯一性的概率非常高)。该索引随后被标准 C 样式强制转换截断为函数的返回类型。
最新文章
- 近实时运算的利器---presto在公司实践
- loadrunner通过字符串左右边界切割字符串
- Outlook 2013 在邮件里面点击超链接时弹出&ldquo;组织策略阻止我们为您完成此操作&rdquo;
- html:关于表单功能的学习
- js打印方法总结
- POJ3185(简单BFS,主要做测试使用)
- 新唐的icp和isp
- Value Categories
- nosql使用感受
- 微信小程序的跨平台图表库开发
- [BZOJ4292] [PA2015] R&#243;wnanie
- pip 源
- 创建python虚拟环境如果速度很慢
- svn解决冲突问题
- numpy nan值的判断
- JAVA核心技术I---JAVA基础知识(static关键字)
- Qt使用std::sort进行排序
- PHP开发工程师-技能树
- ArcGIS Runtime数据制作教程
- 表单提交时编码类型enctype详解