自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享学习的知识,记录我的技术成长道路

在离这遥远的地方有一片海滩,孤独的人就在海上,撑着船帆

  • 博客(145)
  • 收藏
  • 关注

原创 我要走遍三山五岳之---嵩山

怎么选山?节假日一定要选小众的山,比如嵩山。但是我也在山顶拍照排队排了一个小时,很难想象泰山得排多久。而且排队的人其实不多,就是一个人的时间实在是太长了。节假日选小众的山怎么通勤?看小红书攻略,高德地图甚至没有这个汽车站路线。宾馆选择?自从上次毕业旅行之后,我就一直选如家自己的宾馆了,不要选如家旗下的,那不是如家自己的。登山带什么?登山杖:必须用品,不然我要手脚并用爬山了。水:不要只带矿泉水,这次我一口气背了四瓶,但是当人体无机盐流逝多的时候,很容易抽筋。

2024-09-18 22:58:05 983

原创 2024.2.5 vscode连不上虚拟机,始终waiting for server log

起初,哥们跟着网上教程有模有样地删除了安装包缓存,还删除了.vscode-server,发现没卵用,之前都是搜那个弹窗报错。后来发现原来是vscode自己更新了,反正就是ubuntu16.04就是不能连。昨天还好好的,吃着火锅,做着毕设,突然就被vscode给劫了。在官网找了个18.5版本的vscode才连上,这个链接下载。

2024-02-05 15:56:53 1286

原创 vscode连不上虚拟机,一直密码错误

没找到密码配置格式什么的,经查看sshd配置文件发现,原来是只允许秘钥登录,把prohibit-password修改为yes即可。最近在做毕设,但是vscode使用连接不上虚拟机,我以为是网络配置的问题,一顿查阅没找到原因。后来查了一下ssh的日志,发现ssh有消息,但是也提示密码错误。

2024-01-22 22:27:51 1213

原创 2024,启动(回顾我的2023)

2024,启动!

2024-01-02 13:49:46 958 8

原创 protobuf实现原理

最近刚刚从一家公司离职,在职的时候使用到了go语言的grpc库,了解了除了json之外的另一个专门用于远程调用的序列化工具protobuf。protobuf是Google开源的一款支持跨平台、语言中立的结构化数据描述和高性能序列化协议,此协议完全基于二进制,所以性能要远远高于JSON/XML。由于出色的传输性能因此常见于微服务之间的通讯,其中最为著名的是Google开源的 gRPC 框架,下面来谈一谈它的原理。protobuf将消息里的每个字段进行编码后,再利用T-L-V或者T-V的方式进行数据存储。

2023-06-09 17:24:35 2144

原创 ftp被动模式可登陆验证,但是dir/ls超时卡死解决办法

而被动模式服务器监听1024-65535的一个随机端口,并通过控制连接将该端口告诉客户端,客户端向服务器的该端口发起TCP数据连接,这种情况下数据连接的建立相当于服务器是“被动”的。经过查阅资料发现,卡死的部分前面是我的公网ip,后面的数字253*256+87其实是我的端口号,只需要开放该端口号即可。并且由于该端口号是随机的,但是它的范围是固定的,端口号的范围是64000-65000,在腾讯云上将它们开放即可。在linux下默认是被动模式,而在windows下默认是主动模式。我将自己查询的资料也分享出来。

2023-05-27 17:39:01 2818

原创 xshell等可以连接,但是Vscode连接不上远程的问题

这问题给哥们整麻了一天了,终于解决了,有效的话别忘给哥们点点关注和赞呀!首先去你的user/用户/你们的目录下找到.ssh文件夹。报错信息为:写入的管道不存在。

2023-05-25 18:27:44 4378 9

原创 epoll源码剖析

好久好久没有更新博客了,最近一直在实习,刷算法找工作,忙里偷闲简单研究了一下epoll的源码。也是由于面试的时候经常被问到,我只会说那一套,什么epoll_create创建红黑树,以O(1)的方式去读取数据,它和poll与select的区别等等。本篇将从epoll的源码层面重新学习epoll。

2023-04-10 23:51:14 1033 1

原创 Git的基本操作

本文将从本地库到远程库详细介绍git的基本操作。

2023-02-19 14:23:16 1151 4

原创 负载均衡的在线OJ

这是一个负载均衡的在线OJ项目

2023-01-20 18:54:02 1752 1

原创 运行时找不到动态库

我的第一反应是make install失败了,但是查看了一下安装过程,安装路径在/usr/local/lib下面,说明是安装成功了的。在我的印象里,系统和g++查找动态库的默认路径是一样的,结果其实并不一样,系统无法找到它。于是在/ect/ld.so.conf.d/为/usr/local/lib建立.conf文件,文件内容填入该路径。今天在使用一个google渲染库的时候,安装后使用ldd发现运行库not found,总结一下这次问题。g++编译器是可以找到这个库的,但是系统没有找到,这是个奇怪的现象。

2023-01-15 17:24:44 693

原创 算法模型总结:单调栈

739. 每日温度给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。单调栈主要解决寻找数组中下一个比它大的元素的值或者下标。单调栈问题的结果数组要先初始化,初始化的值为后面没有找到该元素的时候,该位置的值。遍历数组,每一次判断当前元素与栈顶元素的大小。如果当前元素比栈顶元素小或者等于栈顶元素,直接进行入栈。如果当前元素比栈顶元素大,则出栈,

2022-12-04 09:05:53 382 1

原创 算法模型总结:栈与队列

当要主动出队列的时候,只有一种情况,那就是队列满了,此时我们知道要出队列的是哪个元素,因此我们判断队列首是哪个元素,如果是要出队列的,直接出队列即可。使用两个栈来实现队列,其中一个栈用来入,一个栈用来出,当要插入或者删除数据的时候,将数据从一个栈导入到要操作的栈即可。遍历整个数组,如果遇到左括号,则将括号入栈,如果遇到右括号,看栈顶元素是不是该右括号,是则出栈,不是则退出。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。根据 逆波兰表示法,求表达式的值。

2022-12-02 11:47:58 780

原创 算法模型总结:字符串

返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。3.将后指针指向的值赋值为前指针指向的值,如果前指针是空格,则后指针移动并填入%20。s 中使用至少一个空格将字符串中的 单词 分隔开。1.首先遍历整个字符串,计算出空格的个数,根据空格个数来扩容字符串。3.如果在大字符串中还能找到该字符串的话,则有重复子字符串。给你一个字符串 s ,请你反转字符串中 单词 的顺序。

2022-11-30 11:38:33 448

原创 ‘nullptr’ was not declared in this scope

所以在g++编译的时候需要加上-std=c++11。由于nullptr是在C++11标准中提出来的。

2022-11-26 22:58:34 989

原创 算法模型总结:哈希

判断两个字符串中每个字符是否出现相同的次数。使用unordered_map来进行处理,其中它的第一个元素为字符,第二个元素是一个结构体,它的两个元素分别是在t和s字符串中该字符出现的次数。遍历两个字符串,依次加入到unordered_map中即可。

2022-11-25 20:47:04 654

转载 Qt开发QtQuick程序在编译时报错:0x00007FFE4E60BB6B (ig9icd64.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFF

这个问题最近困扰的好久,查遍百度都找不到解决方案,一直以为是显卡驱动的问题,因为编译显示ig9icd64.dll这个库是属于intel显卡驱动的一个渲染库。原文链接:https://blog.csdn.net/liukun0928/article/details/81351804。2. 根据Qt官方bugreports的说法,这是硬件驱动渲染出了问题,可以开启软件渲染来回避这个报错的。

2022-11-25 15:15:58 692

原创 跨平台编译工具--CMake上手教程

本文主要讲解CMake的基本使用,是一个入门教程。

2022-11-23 16:59:49 3800 8

原创 g++无法找到动态库问题

但是在一些编写驱动模块的设定中,会强制gcc不去搜索默认路径,此时可以加-nostdinc选项,此时必须使用-l来指定路径。在配置文件/etc/ld.so.conf中指定动态库搜索路径,其中他的每一行都是一个搜索路径。在使用各种各样的C++库的时候,有的时候会遇到找不到的问题,特此整理此博客来记录gcc/g++链接动静态库的过程。3.配置文件/etc/ld.so.conf中指定的动态库搜索路径。-L后的内容表示的是库的路径,-l后表示的是库的名称。动态库的默认搜索路径在/lib和/usr/lib中。

2022-11-23 08:34:01 1249 1

原创 编译原理:语法分析(自下向上)

关键就在于第一次书写和继承的问题,当第一次书写使用L的时候,它的后面可以跟=号,第二次用到L的时候是R->L使用的,为空,将两者分开。sn表示入栈之后进入n状态,rn表示出栈规约选择第n个表达式,action表示遇到符号,GOTO表示遇到非终结符,数字表示要进入的状态。b规约成B,4号状态出栈。通过查表,b入栈,状态变为4号状态。其中,状态表示的是当前状态,其中有两个栈,分别是状态栈和符号栈。5.继续读入字符,2号状态遇到a,入栈后变成3号状态。6.继续读入b,此时3号状态遇到b进入4号状态。

2022-11-15 17:05:04 611

原创 编译原理:语法分析(自顶向下)

使用递归的方式进行写程序,无论递归和非递归都要求SELECT集,其中右侧第一个为终结符就很容易看出FIRST集了,同时也是SELECT集,右侧为空的时候就看FOLLOW集,从而生成该产生式的SELECT集。首先将|符号拆成两个产生式,当右侧不是空的时候,SELECT集就是左侧的FIRST集,如果为空则SELECT集就是左侧的FALLOW集。每一次都替换最左边的非终结符,称为最左推导,它的逆过程称为最右规约。FIRST集为非终结符能推出的句型的首部为终结符的终结符的集合。第二个“ L”表示产生最左推导。

2022-11-13 16:45:54 926

原创 编译原理:词法分析

每识别出来一个token之后,退回到初始状态。每识别出一个字符串后,查看关键字表,如果有则定义为一个关键字,如果没有则定义为一个标识符。

2022-11-12 19:25:28 423

原创 编译原理基本概念

字母表:有穷符号集合。乘积:连接。正闭包与克林闭包:克林闭包多了一个空串。(所有不同长度的字符串组成的集合)VT:终结符,a,b,c,id…VN:非终结符,通常用来描述终结符,E,T…P:产生式集合,描述将终结符和非终结符组合成串的方法。S:开始符号,表示的是该文法中最大的语法成分。

2022-11-10 20:26:45 843

原创 boost搜索引擎

本文是一个boost搜索引擎的项目。

2022-10-28 22:56:27 644 1

原创 算法模型总结:链表中的前后指针法

本文主要总结链表中的前后指针法

2022-10-24 22:10:36 623

原创 算法模型总结:螺旋升天矩阵

本文主要介绍螺旋矩阵的解题方法。

2022-10-23 14:37:17 416

原创 算法模型总结:前后指针法

本文主要总结前后指针法

2022-10-22 10:34:16 596 1

原创 算法模型总结:二分查找

本文主要总结二分查找的算法模型,将持续更新

2022-10-21 19:26:53 865

原创 MySQL使用C语言连接

本文主要介绍使用C语言来链接MySQL

2022-10-20 10:12:02 978

原创 MySQL事务管理

本文主要介绍MySQL的事务管理。

2022-10-19 08:17:37 746 1

原创 C++重载的底层原理

而在C++的汇编代码中,如果调用函数f(),生成的f()名与其中的参数有关:如果f()中没有参数,则会生成call fv(?)其中v表示没有参数。如果f()中的参数为int,则会生成call fi(?)其中i为类型int的首字母。此时fv(?)与fi(?)对应的符号表中的地址就可以查找了,可以填入,所以C++支持函数重载而C语言不支持。

2022-10-18 09:34:49 188 1

原创 MySQL复合查询(多表查询)

通常当进行自查询的时候,为了避免冲突,通常需要为表取别名,由于from是在select之前就执行了的,因此select中可以使用from中起的别名。多列子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。书写复杂的查询过程,一定要先明确执行顺序,子查询是第一个执行的,from语句是第二个执行的,where是第三个执行的,select是最后执行的。在了解复合查询之前,我们需要先复习一下在单表中的查询:这些查询都是在oracle标准表中进行的。使用关键字进行比较。

2022-10-17 08:44:48 1161 15

原创 MySQL用户管理

可以使用root用户来查看当前的所有用户,该用户表在数据库mysql下的user表中,用户表的主要字段是user,host,*priv,authentication_string/password。注意不同版本的数据库修改密码的方式是不一样的,大家要注意自己的版本,自从数据库被攻击,我改成了MySQL8.0版本之后深有体会。注意,我们给的创建指令是在db数据库下创建表的指令。这条指令是为lhb这个用户提供所有的操作,即all表示所有的权限,第一个*表示所有的数据库,第二个*表示所有的表。

2022-10-15 10:31:40 389

原创 MySQL视图操作

会发现这里面是没有myview的结构的,值得注意的是MySQL8.0将.frm文件并入到了.ibd文件中。视图是一个虚拟的表,其内容由查询来进行定义。视图的数据变化会影响基表,基表的数据变化也会影响视图。说明两个表的数据是一个数据,同理修改基表的数据,视图中的数据也会发生改变。注意,视图不是一个真正的表,但是我们可以使用和表一样的操作来查询它。我们可以查看一下视图中的数据,查询的方法和一个表示一样的。此时我们再来查询基表emp中的内容,发现做了修改。视图的关键点有两点,一个是创建,一个是数据来源。

2022-10-13 16:40:37 1013

原创 MySQL索引原理

本文介绍MySQL索引的底层原理

2022-10-09 19:23:09 1844 23

原创 记一次服务器被DDOS经历,网络安全就在我们身边

就在昨天,本来计划写一篇MySQL的博客的时候,服务器的MySQL怎么也打不开了,说没有root的权限。通过查询锁定了错误,并重启了MySQL,此时我还没有意识到我的MySQL已经被攻击了。。。打开MySQL映入眼帘的是一个ReadMe的库和表,我不由得感到差异,打开这玩意,我才发现,我被攻击了:不过好在这个服务器就是我用来学习使用的,里面东西都不太重要,而且我全部都有备份。

2022-10-08 11:35:38 1135 1

原创 MySQL内置函数

对于datetime类型有三种插入方式,一种是手动插入,一种是使用时间戳进行插入,一种是使用now()函数进行插入。思路是通过substring函数先将字符串中第一个字符截取出来,使用lcase进行处理之后,再与剩余的部分进行拼接。通常来讲在服务器中存储的密码是以这种加密方式存储的。向上取整函数的上,表示的是正无穷方向的上。向下取整同理,下指的是负无穷的方向。

2022-10-06 15:01:11 1229 2

原创 MySQL表的内外连接

内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。以上两个SQL语句是等价的,但是第一个更加专业一些,其中连接条件可以理解为外键,但是没有设置外键约束。

2022-10-05 22:54:16 920 3

原创 MySQL表的增删查改

本文主要介绍表的MySQL增删查改。

2022-10-04 22:46:08 1384 25

原创 C++STL函数总结

set是只有key值的二叉搜索树。multiset是只有key值,并且可以有key值相等节点的二叉搜索树。有kv结构的二叉搜索树,mutimap支持相同的key进行插入(value可以不同也可以相同)。list是一个双向带头循环链表,不能下标访问。vector是一个数组,可以下标访问。string是一个字符串。

2022-10-03 15:44:04 747 2

空空如也

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

TA关注的人

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