自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 LevelDB源码解析(六)

​ -->

2023-08-14 14:35:19 179

原创 LevelDB源码解析(五)

core skiptablenaruto log systemLSM Tree https://o444bvn7jh.feishu.cn/sheets/shtcn9ulkvMy9rAwUdnngNWBHLe?table=tbl3fU0dYPH8Rxb0&view=vewP2B92zvhttps://o444bvn7jh.feishu.cn/docs/doccn9NZDKDBPquLtYQuMTqNADggoogleTest https://google.github.io/googletest/pri

2023-08-14 14:34:28 224

原创 LevelDB源码解析(四)

SSTable的构成是由若干Data Block、若干Meta Data Block、一个Index Block和一个Footer组成。其中:Data Block为key-value存储的结构,由于LevelDB在查询数据的时候,又想顺序读取数据(顺序读要快于随机读),又想缩短查找数据的时间(试想,如果只使用顺序读,一次性读取很大的内存再顺序查找是较慢的),所以LevelDB将默认每16个数据为一组(Group或者下图的Entry)使用进行顺序读,每组之间使用十分查找。

2023-08-14 14:31:27 283

原创 LevelDB源码解析(三)

leveldb作者没有使用c++自带的字符串库,而是封装了一个表示字符串的指针和长度的Slice类,这样可以节省复制字符串带来的开销。

2023-08-14 14:30:07 345

原创 LevelDB源码解析(一/二)

reinterpret_cast 用于进行各种不同类型的指针之间、不同类型的引用之间以及指针和能容纳指针的整数类型之间的转换。快速管理内存,用于高频次的内存分配和释放,主要用在memtable和immemtable上。创建给定类型对象大小满足对齐要求的未初始化内存块,在一个内存对齐的缓冲区上创建对象。声明一个变量的析构函数永远不会调用,一般还会配合单例模板类使用。对象时,它试图接收给定互斥的所有权。但是可以使用移动语义,对右值进行所有权的传递。,同时提供了转移拥有权的接口。对象的作用域时,销毁。

2023-08-14 14:23:28 430

原创 C/C++ 复杂声明

C/C++ 复杂声明

2022-05-31 17:06:10 230

原创 从零开始Ubuntu20.04搭建QT+qtcharts+qtdatavis3d

从零开始Ubuntu20.04搭建QT+qtcharts+qtdatavis3d

2022-04-06 13:48:44 1496

原创 libpcap编译遇到的问题 ‘pcap_lookupdev’ is deprecated

libpcap编译遇到的问题问题1:warning: ‘pcap_lookupdev’ is deprecated: use ‘pcap_findalldevs’ and use the first device [-Wdeprecated-declarations]解决1在libpcap 1.1.1或是使用最新的版本libpcap1.10.1 都会出现这个报错,查询一番i以后,发现1.9版本及以后都不支持pcap_findalldevs函数,会报错。版本换到libpcap1.8.1 即可安装过

2022-03-30 10:05:21 1370

原创 win10安装vs2015出现“安装包丢失或损坏”解决办法

win10安装vs2015出现“安装包丢失或损坏”解决办法

2022-01-04 11:02:13 10330 1

原创 C++primer学习笔记(4)

第十五天

2021-07-13 15:23:52 112

原创 QT入门(一)

1.下载和安装QT下载选择CN镜像下载即可。2.创建项目3.文件目录main.app#include "mywidget.h"#include <QApplication>//包含一个应用程序类的头文件。//argc命令行变量的数量,argv是命令行变量的数组int main(int argc, char *argv[]){ //a 应用程序对象 应用程序对象有且仅有一个 QApplication a(argc, argv); //窗口对象

2021-07-12 18:03:54 415

原创 C++primer学习笔记(4)

第十天1.复制构造函数只有单个形参,该形参是对本类类型对象的引用(常用const修饰)。根据另一个同类型的对象显式或隐式初始化一个对象。复制一个对象,传递给一个函数。从函数返回是复制一个对象。初始化顺序容器中的元素。根据元素初始化列表初始化数组元素。初始化的两种形式:直接初始化和复制初始化。直接初始化直接调用与实参匹配的构造函数。复制初始化调用复制构造函数。创建一个临时的对象,然后复制构造函数将那个临时的对象复制到正在创建的对象。作为一般规则,初始化容器元素,分配一个空容器并将一直

2021-07-11 13:11:07 269

原创 C++primer学习笔记(3)

第八天1. 泛型算法find函数如果不支持相等(==)操作符,或打算用不同的测试方法来比较元素,则可以使用第二个版本的find函数。这个版本需要一个额外的参数:实现元素比较的函数的名字。**泛型算法本身从不执行容器操作,只是单独依赖迭代器和迭代器操作实现。**算法从不直接添加或删除元素。比如操纵出入器(inserter)。#include<algorithm>#include<numeric>accumulate()int sum = accumulate(vec.b

2021-07-06 08:51:24 158

原创 C++primer学习笔记(2)

五. 第五天1.IO类型头文件:(支持char类型)iostream定义读写控制窗口的类型。fstream定义读写已命名文件的类型。sstream所定义的类型则用于读写存储在内存中string对象。前面加上w则是支持wchar_t类型。2.IO对象不可复制或赋值只有支持赋值的元素类型可以存储在vector或其他容器类型里。形参或返回类型也不能是流类型。3.状态每个IO类还定义了三个iostate类型的常量值,分别别哦啊还是特定的位模式。badbit标志着系统级的故障,如无

2021-07-02 15:37:02 236

原创 C++primer学习笔记

第一天1.基本算数类型boolcharwchar_t:用于扩展字符集short int longfloat double long double2.字面值常量以0开头的是八进制 以ox开头的是16进制128u (unsigned)1l (long)3. 字符‘A’ 表示单个字符A“A” = “A \0” 表示 字母A和空字符 两个字符 字符串4. 初始化直接初始化和复制初始化直接初始化更灵活更高效。int ival(1024); //直接初始化int ival

2021-06-30 10:52:08 240

QT qtdatavis3d 5.7 模块 + qtcharts

QT qtdatavis3d 5.7 模块 + qtcharts

2022-04-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除