自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 一个程序员的意识流

Readme:记录生活、工作、学习中自己的思考和想法,但是可能很杂乱的。目的为了提升自己BB的能力。

2023-03-09 19:18:56 207

原创 我的优秀书籍阅读单

一个程序员的技术沉淀之路

2021-10-21 23:12:52 213

原创 C++模板重要概念与注意事项

C++模板的概念

2024-04-28 23:36:17 923 2

原创 C++的初始化与赋值

初始化:对象在创建时(也就是定义时)获得了一个特定的值。赋值:把对象的当前值擦除,而以一个新值来替代。

2023-12-31 13:46:29 471

原创 Drogon源码剖析

Drogon是一个跨平台框架,它支持Linux,也支持macOS、FreeBSD,OpenBSD,HaikuOS,和Windows。

2023-11-07 17:19:11 406

原创 C++ STL快速应用

STL容器有共同的操作接口,包括初始化操作、判空、查看大小、比较元素、销毁、交换,这些操作都是一样的接口。对于访问遍历元素(增删改查),都可以使用迭代器(正向)进行操作,大部分容器支持反向迭代器。另外像Array、vector、string、map、unordered_map支持下标[]操作访问操作元素。

2023-08-03 11:07:16 284

原创 开心消消乐题解

给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1,矩阵示例如:1 1 0 00 0 0 10 0 1 11 1 1 1现需要将矩阵中所有的1进行反转为0,规则如下:当点击一个1时,该1被反转为0,同时相邻的上、下、左、右,以及左上、左下、右上、右下8个方向的1(如果存在1)均会自动反转为0;进一步地,一个位置上的1被反转为0时,与其相邻的8个方向的1(如果存在1)均会自动反转为0;

2023-03-13 19:39:26 1342 1

原创 topK算法实现

显然的思路是选择排序算法将数据排序后输出后(前)K个即可。但是这时间复杂度最快也只能是期望nO(lg n).2.排除剩下K个数据再通过普通排序输出K个数据。简述:选择数据中前k大(或小)的数。1.利用快排思路,每次排除一半的数据。

2023-02-28 22:07:59 151

原创 创建一个docker基础镜像

创建一个非基于其它镜像的基础镜像

2023-01-16 11:01:13 456

原创 在Linux内核空间中计算MD5值

使用Crypto API。

2022-11-21 15:19:56 759

原创 Windows rust开发环境安装

使用微软msvc包,不需要安装visual studio;不使用gnu ABI,经常报错

2022-09-26 02:23:32 492

原创 Windows c/c++开发环境安装以及配置VSCode

c/c++开发环境安装以及配置VSCode

2022-09-25 21:52:29 2037

原创 C++——模板参数类型与匹配

变量c的情况是两种构造函数都匹配的,但是优先匹配类模板参数。

2022-08-26 14:46:41 574

原创 英文单词打字练习与学习

仅支持电脑版,链接: 支持多种单词词库。

2022-08-23 19:19:44 560

原创 C——内存对齐与数据对齐

CPU以固定的长度如4B、8B访问内存,所以访存指令一般只需要地址参数,不需要长度参数(位、1字节、2字节有专门的访问指令),这种情况下,内存就可以看出由一个个的内存块组成,每次也是对一个内存块的访问。内存对齐是为了CPU能一次访问到所需的变量(数据),数据对齐的目的除了这一点之外,还有的就是确保各个类型的数据能刚好存满。.........

2022-08-02 16:20:07 196

原创 OneDrive无法在线访问的间接解决办法

1.选择某个处于同步状态笔记本,右击属性2.点击更改位置显示如下界面,这个界面显示的文件夹就是onedrive.live.com的在线内容。只能对文件夹进行操作,且操作有限:主要解决“无法删除OneNote快捷方式”问题...

2022-05-06 10:01:49 7673

原创 OneDrive说明与OneNote的同步操作

0.首次安装OneDrive软件,可以配置本地文件夹路径,如“C:\Users\Admin\OneDrive”。OneDrive的同步原理就是文件存于云盘,取于云盘。基本状态与操作:标记文件或文件夹以在脱机时使用或标记为仅联机1.右键单击文件或文件夹。2.选择“始终保留在此设备上”或“释放空间”。1.任何文件的同账号同步工作。某台电脑把存在本地OneDrive目录的任意文件同步到云盘后,在任意一台电脑再登陆同账号的OneDrive进行同步,就可以在其本地OneDrive目录...

2022-05-05 20:14:38 5052

原创 C——一种检测/防止内存泄漏的方法

定义一个内存管理结构体,成员如:struct mem_manger { long long mem_cnt[class]; //不同类型的使用内存计数} global_mem_mgr;然后声明一个该结构体的全局变量(可以使用单例模式),再重新定义并每次申请、释放内存的调用的接口;在接口中修改内存技术:void *cnt_kmalloc(int size, i){ ret = kmalloc(size,...); global_mem_mgr.mem_cnt[i

2022-04-20 09:50:06 936

原创 Linux——内核模块开发基本代码框架

一个简单内核模块(ko)的代码模板

2022-04-14 17:32:06 320

原创 C——声明与编译

0.编译器会对所有源文件各自进行编译成目标文件。声明的作用就是某个源文件当编译到当前位置,而所需目标的定义不存在时,提示继续编译下去,后续链接时会到其它所有编译后的源文件即目标文件中去查找;反之,若无声明则报错。1.头文件不会直接编译为二进制文件,只有当源文件引用了头文件,此时的头文件才会添加到(复制所有内容)源文件中一起编译。2.通常不在头文件定义变量,是因为防止多个源文件引用该头文件导致重复声明;但如果实际要这样做,可以像下面那样定义一个private后缀的头文件,只让一个源文件(A.c)使用.

2022-04-14 15:28:39 808

原创 API参考网站

内容 网站 C/C++ cppreference.com Java Java SE 文档 - API 和文档 | Oracle 中国 Python Python 标准库 — Python 3.10.4 文档 Rust std - Rust (rustwiki.org) Golang Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | ......

2022-03-31 14:43:18 2918

原创 解决征信中心密码控件无法安装

浏览器:微软Edge,版本:99.0.1150.46 (正式版本) (64 位) 中国人民银行征信中心密码控件安装点击无反应 打开Edge设置,找到“默认浏览器”页面,如下图,“允许在Internet Explorer模式下重新加载网站”选择允许 添加Internet Explorer模式页面,中国人民银行征信中心主页 重启浏览器,打开征信中心页面,右击设置及其他(Alt+F),点击在Internet Explorer模式下重新加载 此时,点击密码控件安装会弹出下载页面。正常安装后刷新页面...

2022-03-24 09:40:28 43015 3

原创 Nginx常用命令

//移动到nginx.exe所在目录再执行(如果将其目录加入了环境变量,则需要设置"-e -c",否则可能报错) 1. 运行: nginx nginx.exe start nginx 2. 停止 nginx -s stop nginx.exe -s stop 3. 帮助 >nginx -h nginx version: nginx/1.20.2 Usage: nginx [-?hvVtTq] [-s si...

2022-03-08 15:47:29 3084

原创 SPDK——no NVMe controllers found

SPDK构建完成后运行./setup.shdmesg显示错误:genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq 18uio_pci_generic: probe of 0000:03:00.0 failed with error -22查看setup状态:可以看到nvme没有成功绑定到uio_pci_generic[root@localhost scripts]# ./setu...

2022-03-03 19:54:26 1506

原创 Vagrant环境搭建

参考: https://learn.hashicorp.com/collections/vagrant/getting-started 1. 首先安装Vagrant a. 下载安装包 https://www.vagrantup.com/downloads b. 如 yum -y install ./vagrant_2.2.19_x86_64.rpmc. 验证安装 [root@localhost soft]# va...

2022-02-25 09:43:10 478

原创 LSM-tree原理分析

本文围绕以下几点并基于网上的资料(见文末)进行分析: 1. SSTable、index组成、作用,SSTable持久、不可变是什么意思? 2. key、value组成、作用 3. 树的组织、每层的内容组成、组成单位 4. key在每层有序还是全局有序、连续有序还是非无序? 5. 每层的内容发生改变的情况,没有交集的SSTable如何、什么存放到(到下一层)磁盘? 6. 合并策略,合并对象只是相邻的两层发生合并?...

2022-02-15 14:45:08 1179

原创 存储——硬盘尺寸、接口、协议

前言:常听到硬盘有3.5寸的、2.5寸的;笔记本的、台式的......有时是SATA接口、有时是SAS接口、SCSI协议.....现在尝试对这三者进行一个总结,以便分析某种术语在其语境中的意义。一、设备尺寸这里指的是硬盘的尺寸。我们常用的有3.5寸和2.5寸的。后来固态硬盘的出现,又有别致的外形(像内存条)。其应用如下表所示。大小/外形 应用 2.5英寸 固态、机械、混合硬盘。笔记本、外置盒 3.5英寸 固态、机械、混合硬盘。台式机、服务器,外置盒(需外接电源) M

2022-01-26 17:27:41 4920

原创 CPP——转发

1. 某些函数需要将其一个或多个实参连同类型不变地转发给其他函数。在此情况下,我们需要保持被转发实参的所有性质。包括实参类型是否const的,以及实参是左值还是右值。 2. 例子template<typenameF,typenameT1,typenameT2>voidflip1(Ff,T1t1,T2t2)//f是可调用对象{ f(t2,t1);//将两个额外的参数逆序传递给f} ○ 这个函数一般情况下...

2022-01-18 09:52:42 1050

原创 CPP——引用折叠

template<typenameT>voidf3(T&&);intI;constintci;f3(42);//实参是一个int右值;模板参数T是int(正常的普通推断)f3(i);//实参是左值;模板参数T是int&f3(ci);//实参是左值;模板参数T是一个constint& 1. 除了两个例外,C++不允许将一个右值引用绑定到一个左值上 a. 第一个例外规则影响右值引用参数的推断如何进行:当我们将...

2022-01-18 09:33:33 258

原创 固态硬盘——Trim命令

什么是Trim? Trim又叫 Disable Delete Notify。当系统删除某个文件时候,它只是简单的在逻辑数据表内把存储要删除的数据的位置标记为可用而已。而Trim也是做类似的事情,在删除数据时,不会向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。机械磁盘本身的特点就是对删除的数据仅标记为可用,而无需进行实质的删除。但是固态硬盘不可以覆盖写,所以不能像机械硬盘那样方便;而在写入已被写过的位置时,是需要进行实质的删除数据操作。因此为了在写入时避免频繁删除操作,Tr

2021-12-23 09:46:49 3480

原创 Linux虚拟机共享目录失效

1.解挂载umount /mnt/hgfs2.重新挂载/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=0 -o gid=0 -o umask=022(uid和gid通过命令id可以查询)最好将这个命令加入到/etc/rc.d/rc.local,这样每次开机自动运行,不用手动挂载注意:在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要先执行一次如下命令赋予其可执行权限chmod +x

2021-12-22 16:47:37 1372 1

原创 CPP——函数对象与std::function

1. 概念:函数对象也叫函数符(functor),可以是以函数方式与()结合使用的任意对象。这包括函数名、指向函数的指针和重载了()操作符(包括这三种的模板实现)的类对象。 2. 函数符类型 § 生成器(generator):不用参数就可以调用的函数符 § 一元函数(unaryfunction)是用一个参可以调用的函数符 § 二元函数(binary function)是用两个参数可以调用的函数符 ○ 改进版: § 返回bool值得一元函数是断言 § 返回bool值得二元.

2021-12-22 15:37:26 942

原创 C——变参宏与变参函数

实现工具头文件:stdarg.h1. 变参宏:… 和 __VA_ARGS___ ○ 把宏参数列表中最后的参数写省略号(…)实现接受数量可变的参数;__VA_ARGS__则用在替换部分中, 表明省略号代表的什么,如 #define PR(…) printf(__VA_ARGS__) ○ 注意 § 省略号只能代替最后的宏参数,如 #define WRONG(X,…,Y)是错误的。2. 变参函数 ○ 实现步骤(需要手动实现) i. 提供一个使用省略号的函数原型

2021-12-20 14:13:46 1270

原创 yum配置离线安装-使用镜像搭配本地源

首先准备镜像,如CentOS-8.4.2105-x86_64-dvd1.iso将其挂载,如 mount /CentOS-8.4.2105-x86_64-dvd1.iso /mnt/iso/配置yum备份:将目录/etc/yum.repos.d/中所有的repo文件加上.backup后缀保留拷贝一份CentOS-Linux-Media.repo,文件名也是这个(若没有则创建或者任选一个repo文件即可)更改上述的文件CentOS-Linux-Media.repo:(注意enabled=0表示不启.

2021-12-17 17:34:58 1484

原创 CPP——嵌套类

功能性质对类进行嵌套不创建类成员,而而是定义了一种类型(因此定义对象时两者没有构造关系)为了帮助实现另一个类并避免名称冲突访问权限:类声明的位置决定了类的作用域或可见性。类可见后,访问控制规则(公有、私有、保护、友元)将决定程序对嵌套类成员的访问权限。嵌套类的声明位置决定了嵌套类的作用域,即决定了程序的哪些部分可以创建这种类的对象若在一个类A的私有部分声明,则只有A可见,程序的其他部分不知道这个嵌套类的存在。即使是A的派生类也不可见。若在一个类A的保护部分声明,则A可见,A的..

2021-12-17 10:48:11 521

原创 操作系统——操作系统对访存地址的解析过程

注意:1.访问cache部分是对OS透明的2.虚拟访问内存方式如请求页式

2021-12-16 20:01:46 578

原创 计算机组成原理——地址字长、机器字长、指令字长、存储字长

2021-12-16 19:54:44 1323

原创 堆——最小优先队列以及实现

数据结构堆的介绍:堆与堆排序用于作业调度的最大/小优先队列可以使用堆来实现:• 最大优先队列支持以下操作○ INSERT(S, x):把元素x插入集合S○ MAXIMUM(S):返回S中具有最大关键字的元素○ EXTRACT-MAX(S):去掉并返回S中的具有最大键字的元素○ INCERASE-KEY(S, x, k):将元素x的关键字值增加到k,这里假设k的值不小于x的原关键字值• 最小优先队列支持以下操作:○ INSERT○ MINIMUM○ EXTRACT_MIN○..

2021-12-16 15:54:32 681

原创 排序算法——分类

按照实现排序的方法进行主分类:实际上,常用的六种是:冒泡排序快速排序希尔排序堆排序归并排序基数排序

2021-12-15 13:36:48 347

原创 排序算法——快速排序

实现代码://以第一个元素为主元int partition(vector<int> &data, int l, int r){ int main = 0; int i = 0; int j = 0; if(l >= r) return l; i = l; main = data[l]; for(j = l+1; j <= r; j++) { if(data[j]

2021-12-15 10:24:51 1241

空空如也

空空如也

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

TA关注的人

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