12 2019 档案
摘要:这一篇主要是根据 leveldb 实现的 布隆过滤器的简单版 #include <iostream> #include <cstring> using namespace std; #ifndef FALLTHROUGH_INTENDED #define FALLTHROUGH_INTENDED \
阅读全文
摘要:声明:本文完成来自极客时间的吴咏炜的专栏文章,我纯粹记录 smart_ptr实现 智能指针并不神秘,其实就是RAII资源管理功能的自然展现而已。智能指针可以简化资源管理,从根本上消除资源(包括内存)泄漏的可能性。 template <typename T> class smart_ptr { pub
阅读全文
摘要:引子 《数学之美》介绍布隆过滤器非常经典: 在日常生活中,包括设计计算机软件时,经常要判断一个元素是否在一个集合中。比如: 在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中); 在FBI,一个嫌疑人的名字是否已经在嫌疑犯的名单上; 在网络爬虫里,一个网站是否已访问过
阅读全文
摘要:引子 首先通过一道题来理解什么是bitmap。 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 分析: 假设一个int占4个字节(32位),40个亿个整数就是160亿个字节,大概相当于16GB,假设一台计算机只有2GB内存,则16GB一次加载不完,需要
阅读全文
摘要:前言 leveldb 是一个库,没有 main() 函数入口, 故非常难理清其中的代码逻辑。但好在库中有非常多的单元测试代码,帮助读者理解其中的各个模块的功能。然而,测试代码个人觉得一开始看时非常费解,特别是其中非常复杂的宏定义让人陷于云里雾里一般。研究 leveldb 的时间也有一段时间了,但一直
阅读全文

浙公网安备 33010602011771号