摘要: redis是一个存储键值对的内存数据库,并且持久化到磁盘。 1、简单动态字符串(Simple Dynamic String,简称SDS) 1)利用len记录字符串长度,使得strlen时间复杂度从O(N)变为O(1)。 // sds.h struct __attribute__ ((__packed 阅读全文
posted @ 2020-03-05 22:34 happyyoung 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 虚析构函数是为了解决基类指针指向派生类对象,并用基类指针delete派生类对象,导致的内存泄漏问题。 class Base { public: Base(){ a = 1; } // 1) virtual ~Base() { cout << "destruct base." << endl; } / 阅读全文
posted @ 2020-03-05 22:06 happyyoung 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 1、函数指针,用于保存函数的入口地址,即函数名。 // 函数指针的基本用法 // 声明一个函数 int func(int); // 写法1 // 定义一个函数指针 int (*fptr)(int); // 形式上只比函数多了一个*号和一对圆括号 // 写法2 // 声明一个函数指针类型 typede 阅读全文
posted @ 2020-03-05 22:03 happyyoung 阅读(1115) 评论(0) 推荐(0) 编辑
摘要: 在使用基本指针类型时,因为要手动释放指针指向的内存,常常容易造成内存泄漏,特别是异常分支很多的情况下。而智能指针类型就是将基本指针类型封装成模板类,以便更好地管理内存。 智能指针都包含一个explicit构造函数,因此基本指针类型不能隐式转换成智能指针,需要显式调用。 shared_ptr<doub 阅读全文
posted @ 2020-03-05 21:59 happyyoung 阅读(1271) 评论(1) 推荐(0) 编辑
摘要: 索引原理 存储引擎 阅读全文
posted @ 2020-03-05 21:58 happyyoung 阅读(104) 评论(0) 推荐(0) 编辑