CMU15-445 B+tree

B+树的介绍(以InnoDB为例) InnoDB 的数据是按「数据页」为单位来读写的,也就是说,当需要读一条记录的时候,并不是将这个记录本身从磁盘读出来,而是以页为单位,将其整体读入内存。 数据库的 I/O 操作的最小单位是页,InnoDB 数据页的默认大小是 16KB,意味着数据库每次读写都是以 16KB 为单位的,一次最少从磁盘中读取 16K 的内容到内...

Read More

CMU15-445 buffer pool manager

数据库中为什么需要buffer pool? 数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,添加缓存。所以,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的时候,直接从内存中读取。 通常存储的数据划分为若干个「页」,以页作为磁盘和内存交互的基本单位,一个页的默认大小为 16KB。因此,Buffer Poo...

Read More

malloc是如何和物理地址关联上的?

malloc函数用于在堆上动态分配内存,它会向操作系统请求一块未使用的内存,然后返回这块内存的地址。 操作系统维护着可用物理内存的信息,知道哪些内存地址 当前未被使用。当收到malloc的请求时,它会从可用物理内存中选择一块未使用的内存,将其标记为已分配,并返回给应用程序。 在32位系统中,malloc返回的地址是虚拟地址,需要经过MMU地址转...

Read More

hexo Cannot GET/

问题: 在hexo搭建博客的过程中,出现Cannot GET/xxx的错误。 查看是否缺少组件 到public目录下找到xxx文件是否存在,我的错误是Cannot GET/,所以去找index.html是否存在。 不存在,执行hexo clean && hexo g重新生成 还是不存在,执行npm audit fix或者是npm ...

Read More

leetcode题解合集

DFS/回溯 以整数拆分为例: 剪枝条件 当和为n时,保存结果 当和大于n时,进行剪枝 在DFS中,同一排的结点是在同一个函数调用中进行处理,如上图中的第一排,1、2、3、4、这4个结点是在第一次函数调用中进行处理。 因此使用一个for循环来处理同一排的结点。 因为元素可以重复取用,本来for循环的起始位置应该都为1,但是为了避免重复,我们可以假设fo...

Read More

C++实现一个简单的线程池

代码 任务结构体 1234567891011//任务结构体using callback = void(*)(void*);struct Task{ Task()=default; Task(callback function,void* arg): function(function),arg(arg){}...

Read More

Trie树

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 前缀树的3个基本性质: 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某...

Read More

C++刷题常用技巧(自用)

自带的宏常量 123int N = INT_MIN;int N = INT_MAX;const int INF = 0x3f3f3f3f; //通常用来代替最大值,防止运算过程中溢出 字符串判断函数 12345isdigit(c) //判断c字符是不是数字isalpha(c) //判断c字符是不是字母isalnum(c) //判断c字符是不是数字或者字...

Read More

C++虚函数和虚函数表

多态 静态多态:静态多态是指在编译时实现的多态,比如函数重载,看似是调用同一个函数其实是在调用不同的。 函数重载为什么不能通过返回值实现? 因为函数重载的解析是在编译阶段进行的。编译器根据函数名和参数列表来确定要调用哪一个函数。 动态多态:动态多态是在运行中实现的,当一个父类对象的引用或者指针接收不同的对象(父类对象or子类对象)后,调用相同的函数会调用不同...

Read More

C++运算符重载的一些规则

C++规定重载后的运算符的操作对象必须至少有一个使用户定义的类型 使用运算符不能违反运算符原来的语法规则 不能修改运算符的优先级 不能进行重载的运算符:成员运算符.、作用域运算符::, 条件运算符,sizeof运算符等 <<运算符的重载 使用全局函数(友元函数)进行重载 s.operator<<(cout);可以简写为:s<...

Read More