- 博客(72)
- 收藏
- 关注
原创 【Linux】防火墙iptables详解
防火墙是一种网络安全设备,用于监控和控制数据包在网络中的流动,以保护网络免受未经授权的访问、恶意攻击和其他安全威胁。防火墙可以是软件、硬件或组合体,其主要功能包括:封端口封ip实现NAT功能共享上网端口映射(端口转发),ip映射
2024-04-01 23:44:54
1746
原创 【MYSQL】表的基本查询
虽然我们在前面已经出过一期关于表和库的操作了,这一次我们来更深入的介绍一下关于表的增删查改操作。CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)
2023-11-29 21:30:31
1225
原创 【MYSQL】表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primarykey,auto_increment,unique key 。
2023-11-10 17:02:18
469
原创 【C++】类型转换
介绍C++中四种类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast 以及RTTI的使用。
2023-06-10 17:17:43
973
1
原创 【C++】智能指针
在我们异常一节就已经讲过,当使用异常的时候,几个函数层层嵌套,其中如果抛异常就可能导致没有释放堆区开辟的空间。这样就很容易导致内存泄漏。关于内存泄漏,我也曾在C++内存管理一文中写过。为了觉得这个问题,C++引入了智能指针。
2023-06-06 17:03:26
1082
原创 【C++】深入剖析C++11新特性
本文用万余字深入讲解C++11的一些特性,其中包含且不仅包含:初始化列表、范围for、右值引用、万能引用、完美转发、lambda表达式……
2023-05-16 23:56:08
2886
4
原创 【C++】三大特性之多态
多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。例如:我们平时游乐场买票,大人全价,小孩半价。
2023-02-07 14:53:42
936
2
原创 【C++】三大特性之继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。
2023-02-03 09:10:03
343
原创 【Linux】冯诺依曼体系结构和操作系统
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘, 鼠标,扫描仪, 写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等
2023-01-28 14:37:21
986
原创 模板进阶篇
【优点】1.模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生2.增强了代码的灵活性【缺陷】1.模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2023-01-13 21:34:10
370
原创 git的使用
git官网创建好用户之后,我们点创建仓库。选择好语言,开源许可证随便选一个即可,模板我们最好设置一个Readme文件,方便后面写明仓库的介绍。分支模型我们新手选一个单分支模型就可以了。因为仓库创建的时候只能选择私有,我们如果要设置开源还需要创建好之后去设置。
2023-01-09 21:37:51
3707
4
原创 好用且免费的广告屏蔽软件
我们使用浏览器的时候,老是弹出广告,面积小了还好,面积大了的话就可能会遮挡内容,非常影响我们的使用。如果是使用edge浏览器的朋友,可以直接到浏览器自带的拓展中下载。最近,博主找到了一款好用的程序,名字叫做。我们首先打开浏览器右上角的三个点,点开拓展。然后再搜索框中搜索就行啦!
2023-01-07 19:18:33
499
原创 Linux项目自动化构建工具-make/Makefile
会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令
2023-01-07 17:08:06
911
原创 Linux 对函数库的理解
我们举个形象的例子,我们寝室没有电脑,并且我们周末列了一系列计划,执行到上网的计划的时候,我们跑到校外的XX网吧去上网,上完网后,返回寝室继续执行计划。我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢?其中XXX就是库的名字,我们可以看到上面的库的名字是c,所以链接的是c标准库。链接的时候,不是产生关联,而是将我们程序内部要用的方法,给程序拷贝一份,就完成了静态链接!
2023-01-06 09:00:00
575
原创 Linux编辑器-vim
我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式
2023-01-03 09:00:00
2628
1
原创 Linux 软件包管理器 yum
在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。软件包和软件包管理器,就好比 "App" 和 "应用商店" 这样的关系。不同的社区,在自己的Linux中,都内置了服务器和应用对应的下载链接,也就是我们的 yum。yum(Yellow dog Updater,M
2022-12-31 15:24:22
1910
3
原创 Linux下对文件权限的理解
我们使用sudo命令的时候,会需要输入密码,这个密码输入的是我们普通用户的密码。这是因为由于某些操作,操作系统对我们是十分信任的。当我们使用普通用户的时候,想要短暂的提升权限,但是又不想使用root用户,这时候就需要用到。,就可以做到短暂提权。当然,使用sudo是需要一定操作的。文件和文件目录的所有者所在的组的用户,所属组:g---Group。文件和文件目录的所有者,拥有者:u---User。其它用户:o---Others。可以省略),此时系统会提示输入。,普通用户的命令提示符是。超级用户的命令提示符是。
2022-12-31 09:00:00
1196
原创 shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。对比windows GUI,我们操作windows 不是直接操作wind
2022-12-28 23:20:23
189
原创 Linux下常用基本指令大全
我们输入:cnt=0;指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。如果我们加上选项 -l 的话,就会列出详细的文件信息,也可以输入 ll ,ll就是 ls -l 的缩写。-a 或--time=atime或--time=access或--time=use只更改存取时间。
2022-12-27 16:14:17
7611
1
原创 STL篇之vector
1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。
2022-12-22 09:00:00
1303
原创 万字string类总结
string类的介绍1. 字符串是表示字符序列的类2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。
2022-11-24 14:27:33
2325
17
原创 八大排序总结篇
一、前言到这里,数据结构的八大排序就算是全部写完了。这一期总结篇我们来测试一下八大排序的效率,印证一下八大排序的时间复杂度,以及深度剖析一下八大排序的稳定性问题。二、八大排序。
2022-11-16 18:17:02
1904
16
原创 排序8: 计数排序
1.计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。2.时间复杂度:O(MAX(N,范围))3.空间复杂度:O(范围)
2022-11-12 16:31:30
503
原创 排序7:归并排序
1.排序思想归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。2.图解3.递归版本因为要排序,还要递归。我们肯定是要写一个子排序的,下面来说说子排序的实现逻辑。
2022-11-12 00:02:59
326
原创 初识C++模板
在写代码时,我们常常因为一个函数的类型不同而不能使用感到困扰。一个简单的交换函数,我们可能都得写好几份使用函数重载虽然可以实现,但是有以下几个不好的地方:1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数。2. 代码的可维护性比较低,一个出错可能所有的重载均出错。那么,有没有什么好办法,可以给出一份代码,让编译器替我们来生成我们需要的代码呢?函数模板。
2022-11-04 20:46:30
145
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人