最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C++库boost进行CRC64计算的方法实例
时间:2022-06-25 04:51:07 编辑:袖梨 来源:一聚教程网
因接入平台,平台提供的是一个字符串的key作为用户标识,而且要用到分布式,所以没法用以前的数据库递增来做用户ID,于是用CRC64来生成uint64_t来作为用户ID,做法也比较简单。如下:
| 代码如下 | 复制代码 |
| std::map char szTemp[128] = {0}; boost::crc_optimal<64, 0x04C11DB7, 0, 0, false, false> crc; for (uint32_t i = 0; i < 1000000000; ++i) { memset(szTemp, 0, sizeof(szTemp)); sprintf_s(szTemp, "%d%s%s%s", i, "1a2b3c", "4d5e6f", "7g8h9i"); crc.process_bytes(szTemp, strlen(szTemp)); size_t nPos = crc.checksum(); crc.reset(); if (!xLongMap.insert(std::map { std::cout << "重复了,当前数量:" << i << ", 字串为:" << szTemp << ", hash pos: " << nPos << std::endl; system("pause"); break; } } | |
需要包含boost/crc.hpp
测试下来1.3亿没有重复,还是比较给力的。
可惜的是后来也没用到这个算法,因为key中有URL转义,导致有%这样的字符,后来就用了别的方法。
相关文章
- 漫蛙漫画(Manwa2)最新镜像直连地址是什么 03-27
- pubg地铁逃生官网入口最新-pubg地铁逃生官网直达链接 03-27
- QQ邮箱入口在哪 03-27
- 来伊份商城app如何添加储蓄卡 03-27
- 春木漫画app官方正版下载安装最新版本怎么进-春木漫画app安卓苹果下载入口指引 03-27
- 免费漫画软件哪个好-全网漫画全免费 03-27