自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 sylar服务器框架分析——日志系统

sylar服务器框架中对于日志系统的重点难点分析

2022-11-10 09:39:32 1220 1

原创 数据结构与算法详解——字符串匹配算法篇(附c++实现代码)

目录BF算法RK算法KMP算法BM算法  字符串匹配就是在主串A中查找模式串B,例如在主串abababc中查找模式串abc是否存在,记主串A的长度为n,模式串B的长度为m,n>=m。BF算法  BF(Brute Force)算法,又叫暴力匹配算法或者朴素匹配算法,思路很简单:在主串中取前下标为[0,m-1]这m个字符的子串和模式串逐个字符逐个字符比较,如果完全一样就结束并返回下标;如果有不一样的,那么主串中的子串后移一位,主串中[1,m]这个子串和模式串继续比较,… ,主串中[n-m,n-1]

2022-06-01 11:12:38 1450

原创 数据结构与算法详解——堆篇(附c++实现代码)

堆,堆排序,topK问题,求中位数

2022-05-27 10:13:42 652

原创 数据结构与算法详解——二分查找篇(附c++实现代码)

目录经典的二分查找有重复值的二分查找变体左侧边界的二分查找右侧边界的二分查找寻找最后一个小于等于value的位置寻找第一个大于等于value的位置经典的二分查找  二分查找是一种经典的查找算法,只适用在有序的数据上,时间复杂度为O(logn),可以说是相当高效的查找算法了。  这里就直接贴代码了:template<typename T>int bsearch(T arr[], int size, T value) { int left = 0, right = size - 1;

2022-05-25 11:05:10 1289

原创 数据结构与算法详解——排序篇(附c++实现代码)

目录如何分析评价一个排序算法?时间复杂度为O(n^2)的排序冒泡排序插入排序选择排序时间复杂度为O(nlogn)的排序归并排序快速排序时间复杂度为O(n)的排序桶排序计数排序基数排序如何分析评价一个排序算法?最好、最坏情况和平均时间复杂度空间复杂度,这里有一个专有名词原地排序,指的是空间复杂度为O(1)的排序排序的稳定性  这里需要详细讲一下第三点,排序的稳定性:假设现在我们有一组数据{4,3,1,2,1}需要排序,排序后为{1,1,2,3,4},如果排序前后两个1的前后顺序没有改变,那么就说

2022-05-25 10:20:10 256

原创 数据结构与算法详解——二叉查找树篇(附c++实现代码)

目录二叉树相关概念和术语二叉树特殊类型二叉树的存储链式存储顺序存储二叉树的遍历二叉查找树查找插入删除完整代码二叉树相关概念和术语  二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。度:一个节点拥有子树的数目称为结点的度,叶子结点的度为0。叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。结点的层次:从根结点开始,假设根结点为第1层,根节点的子结点为第2层,依此类推,如果某一个结点位于第L

2022-05-23 13:09:14 1321

原创 数据结构与算法详解——跳表篇(附c++实现代码)

目录跳表时间复杂度分析跳表  前面我们说到链表,链表的查找的时间复杂度是O(n),比较慢,插入和删除操作是O(1),但是实际上插入和删除都需要先遍历查找到插入和删除的位置。跳表就是在有序链表的基础上添加索引,使得有序链表的查找效率提高。  假设现在有一个16个结点的有序链表,存储1-16整型数字,现在我们需要查找值为12这个结点需要遍历12个结点。  现在我们为链表建立一层索引,假设每两个结点就建立一个索引:  现在我们查找值为12的结点,先从第一级索引中查找,找到结点11,结点11的下一个结

2022-05-16 16:04:23 657

原创 数据结构与算法详解——散列表篇(附c++实现代码)

目录散列表散列函数哈希冲突开放地址法线性探测二次探测双重散列链表法装载因子散列表  前面数组、链表、栈、队列都是序列式容器,存储的都是一个元素。而散列表又叫哈希表(hash table),是一种关联式容器,存储的是一对值,一般是一个key对应一个value(又叫键值对)。  c++ stl中的map就是一个散列表,举个例子:std::map<std::string,int> m;m["小明"]=170;std::cout<<"小明的身高是"<<m["小明"]&

2022-05-13 15:24:06 1826 1

原创 数据结构与算法详解——队列篇(附c++实现代码)

目录队列的概念队列的实现队列的概念  队列的概念比较好理解,和我们现实中的排队比较相似,先进先出。栈和队列有点相似,栈有入栈出栈两种基本操作,队列相对应也有入队出队两种基本操作,不过栈只能从栈顶入,从栈顶出;而队列从队尾入,从队头出,所以队列也是一种操作受限的线性表。队列的实现  和栈一样,用数组实现的队列叫顺序队列,用链表实现的队列叫链式队列。  前面说了,队列从队尾入,从队头出,因此我们需要维护队头head和队尾tail,顺序队列的入队和出队的代码大致是:template<typena

2022-05-12 16:02:09 525

原创 数据结构与算法详解——栈篇(附c++实现代码)

目录栈的概念栈的实现完整代码栈的应用括号匹配表达式求值栈的概念  栈又叫堆栈,是一种运算受限的线性表,只能在表尾进行插入或者删除,表尾这一断也称为栈顶,另一端称为栈底,插入一般称为入栈或者压栈,删除一般称为出栈。栈的特性就是“先进先出”,例如我把1,2先后压栈,出栈的时候必须先弹出2,才能弹出1。  注意:堆栈就是栈,而不是指堆和栈两种数据结构,还有,操作系统内存中的堆栈和数据结构中的堆栈是两回事。栈的实现  栈可以用数组或者链表实现,用数组实现的称为顺序栈,用链表实现的称为链式栈,这里我实现的是

2022-05-12 10:49:44 1104

原创 数据结构与算法详解——链表篇(附c++实现代码)

链表详解及完整实现

2022-05-01 18:34:56 3086

原创 《深度探索c++对象模型》第四章:(成员)函数

假设现有一个3d点坐标,将其归一化:Point3d Point3d::normalize() const{ //register表示该变量常用,请求编译器将变量存储在寄存器里,加快存取速度,但是编译器不一定会放寄存器里 //注意由于该变量不一定放在内存,所以不能用&取地址 register float mag=magnitude(); Point3d normal; normal._x = _x/mag; normal._y = _y/mag; normal._z = _z/mag;

2021-05-29 13:38:48 303 1

原创 《深度探索c++对象模型》第二章:构造函数

2.1 Default Constructor的建构操作常见的两个误解:  1、任何类如果没有定义默认构造函数,编译器就会合成一个出来(错误)  2、编译器合成出来的默认构造函数会明确设定类里面的每一个数据成员的默认值,也就是会帮类里所有数据成员都初始化(错误)编译器会合成默认构造函数的四种情况情况一、类A的数据成员里有类B的对象,且类B有构造函数  如果类A没有构造函数,那么编译器就会合成一个默认构造函数。例子:class Foo{ public: Foo(){}; F

2021-05-25 21:04:31 293 2

原创 《深度探索c++对象模型》第一章:C++对象

1.1 C++对象模型C++对象模型  c++中,类的数据成员static和non-static两种,成员函数有static,non-static和virtual三种。  书中的例子:class Point{ public: Point(float xval); virtual ~Point(); float x() const; static int PointCount(); protected: virtual ostream& print(ostr

2021-05-25 20:45:24 195 1

原创 《深度探索c++对象模型》第三章:数据成员

空虚基类与派生类占用的内存class X{};class Y:public virtual X{};class Z:public virtual X{};class A:public Y,public Z{};  上述类X,Y,Z,A中都没有显式定义的数据,只表示了它们之间的继承关系,可是它们的大小都不为0:书中给出的大小VS2017测试的大小sizeof X:1sizeof X:1sizeof Y:8sizeof Y:4sizeof Z:8sizeof

2021-05-25 20:30:44 466 2

原创 《汇编语言》王爽第三版实验16

问题:这里有个坑,如果像书本那样写,安装了7ch中断程序后,你再另写一个测试程序引发7ch中断程序,执行时会找不到table里面的子程序入口地址。书本代码如下:assume cs:codecode segmentsetscreen: jmp short set table dw clean_screen,set_foreColor,set_backColor,scroll_upset: push bx cmp ah,3 ;参数ah存放功能号,功能号范围是0-3,对应4种功能 ja

2021-03-09 12:44:03 466 3

翻译 metasploit生成shellcode

在Metasploit中,可以从msfconsole中生成payload。当你使用某个payload的时候,Metasploit可以添加generate,pry和reload命令。本节主要讲述generate命令的使用。msf > use payload/windows/shell_bind_tcpmsf payload(shell_bind_tcp) > help...snip... Command Description ------- ---

2021-02-25 12:48:38 1555

原创 C++笔记总结——引用,指针与const

引用,指针与const一、引用(严格来说这里指的是“左值引用”)两条规则:(1)定义引用时,程序会把引用和它的初始值对象一直绑定(bind)在一起(2)引用绑定了一个对象后不能重新绑定到另一个对象规则(1),与拷贝不同,引用和对象绑定后,改变其中一个,另一个也会跟着改变。换而言之,引用是为一个已经存在的一个对象起的另一个名字(注意引用本身并非对象,引用即别名),所以引用只能绑定对象不能绑定字面值或者表达式的计算结果。例如,小明的别名叫小胖,叫小明起床,小明起床了,意味着小胖也起床了,小明和小胖是一

2021-01-28 15:31:03 221

原创 Wmware centos7磁盘满了,无法启动系统

一开始以为是vmware-tools的启动脚本问题一直在找这个方向的问题,后来想到应该是磁盘满了导致的系统进不去。查了挺多的资料的,后来看到一篇博客有用到linux rescue(救援模式)来操作我的centos里的文件,删除掉一些文件(因为虚拟机里的文件存在本地系统是受保护的,无法直接在windows系统进行操作删除),大致思路就是这样,下面是过程:首先要进入救援模式(以centos7为例...

2019-04-21 16:37:58 7634 4

原创 Win10 Python MySQLdb安装爬的坑

先报一下环境:win10 python2.7先前安装了Anaconda,然后安装了pyCharm。安装的包 MySQL-python-1.2.4b4.win32-py2.7.exepyCharm下import MySQLdb(仔细核对有没有打错MySQLdb)报错:No module named MySQLdb然后进到cmd,python命令行import MySQLdb报错:最下...

2019-04-19 20:08:00 676

原创 epoll线程池实现简单TCP并发文件服务器

epoll+线程池 简单TCP并发文件服务器epoll部分代码在libevent的源码上修改的线程池部分参考 https://www.cnblogs.com/yangang92/p/5485868.html操作过程:将所有文件拷贝到Linux目录下(改源码中存放文件的路径),make命令进行编译,打开(多个)终端./server运行服务器端,./client运行客户端,然后在客户端下输入...

2019-03-23 15:36:34 964

原创 Linux c++ socket写一个简单TCP文件服务器

Linux c++ socket写一个简单TCP文件服务器首先输入操作download filename 或者 update filename,客户端将操作和文件名传送给服务器端,然后根据操作进行接收或者发送文件(服务器端发送或者接收文件),注意文件的路径不同用一个结构体MyFile存放每次发送文件的长度(不是整个文件的长度)和文件的内容下面是代码,有注释,(代码可以封装的更好)://de...

2019-03-17 16:37:42 608 1

原创 华硕笔记本快捷键失效(例如fn+f5失效)

华硕笔记本快捷键失效(例如fn+f5失效)//去官网上重新下载驱动安装修复就可以了首先在鲁大师查看自己的机型这里X555LI就是机型然后上官网https://www.asus.com.cn点击服务与支持,然后在右上角搜索自己的机型,搜索出来后点击驱动程序与工具软件选择对应的操作系统,之后会弹出驱动程序包,找到快捷键驱动程序,下载解压,安装最后重启电脑就可以了//转载请注...

2019-02-23 22:38:43 31453

原创 HTML input文本框自动填充黄色背景色解决办法

今天在写一个登陆界面的时候发现,浏览保存登陆账户密码时,Input文本框会自动填充黄色背景色,影响美观,如下图所示下面是解决方案,亲测有效:在input标签里加上 autocomplete=“off”&amp;amp;lt;input type=&amp;quot;text&amp;quot; placeholder=&amp;quot;Email&amp;quot; name=&amp;quot;email&amp;quot; value=

2018-12-26 11:07:02 3912

原创 MATLAB 自己写函数实现查找二值图像连通域,以及对同一个连通域进行贴标签。

标题MATLAB 自己写函数实现查找二值图像连通域,以及对同一个连通域进行贴标签。二值图像只有0和1。四连通就是指一个像素值为1的元素,如果其上下左右任一元素为1,那么这两个元素就属于同一个连通域。八连通就是指一个像素值为1的元素,如果其上下左右,左上,左下,右上,右下任一元素为1,那么这两个元素就属于同一个连通域。笔者这里用的是深搜实现的,基本思路就是遍历整个图像,如果找到一个元素为1,...

2018-12-17 15:14:32 3589

原创 Matlab 均值滤波与中值滤波

%%以下是本人在学习中的个人理解,如有错误请指出所谓的滤波就是一个系数矩阵(也称为模板,滤波器,滤波模板,核,掩模或者窗口),然后用这个模板对应图像矩阵(填充0后的图像矩阵)进行乘积和运算。均值滤波就是这个滤波器每个值都是一样大小,每个值是1/k(k为滤波器矩阵的大小),用于去噪 滤波器可通过 w=fspecial(‘type’,parameters)得到,其中type指定滤波器类型,p...

2018-08-25 23:38:30 40187 8

原创 Matlab filter2的用法

Matlab filter2的用法Y=filter2(h,x,’shape’)h为滤波器,x为要滤波的数据,将h放在x上移动进行模板滤波。 shape可取 full,same,valid (不写默认是same)。下面直接看例子: 首先用fspecial(‘average’)创建一个均值滤波器,默认3*3,每个值都是1/3*3=0.1111&amp;gt;&amp;gt; h=fspecial(...

2018-08-21 14:00:44 18992 2

空空如也

空空如也

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

TA关注的人

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