- 博客(82)
- 收藏
- 关注
原创 【C++】详解智能指针
内存泄露:内存泄露是因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄露并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄露的危害:长期运行的程序出现内存泄露,影响很大,如操作系统、后台服务等等,出现内存泄露会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放// 2.异常安全问题Func();// 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放.
2024-03-21 00:42:24
1020
原创 【网络】详解HTTPS及探究加密过程
HTTPS也是一个应用层协议,而HTTP协议内容的传输方式是明文的,这就导致在传输过程中会出现一些被篡改的情况,基于这种情况,所以HTTPS就是在HTTP协议的基础上引入了一个加密层,那么什么是加密解密呢?数据摘要:其基本原理是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹:并不是一种加密机制,但可以用来判断数据有没有被窜改。
2024-03-16 17:34:15
1729
原创 【C++】C++11---右值引用和移动语义
传统的C++语法中就有引用的语法,而C++11中新增了的右值引用语法特性,所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对象取别名。左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址,可以对它赋值,左值可以出现赋值符号的左边,右值不能出现在赋值符号左边。定义时const修饰符后的左值,不能给他赋值,但是可以取它的地址。左值引用就是给左值的引用,给左值取别名。int main()// 以下的p、b、c、*p都是左值int b = 1;
2024-03-08 22:02:52
1004
原创 【C++】笔试训练(十)
井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子 1. 行全为1, 即行的和为3 2. 列全为1, 列的和为3 3. 主对角全为1, 对角和为3 4. 副对角全为1, 对角和为3 5. 如果扩展为N*N的话,判断和是否等于N,下面代码适用任何情况。这里对于不同种类的字符得分不同,同学们可以现对每一个维度进行单独判断,即对于长度,字母,数字,符号单独判断,最后把所有的单项值根据题目要求相加,输出对应的安全级别。4、print()函数是一个类的常成员函数,它无返回值,下列表示中正确的是()
2024-02-26 14:39:34
985
原创 【C++】笔试训练(九)
或者先向右走,再向下走,到达右下角,共两条,即 1 + 1 = 2,对于1 * m和 n * m的情况同学们自己画一下。把析构函数设成私有的,第一步就不能完成了,但是,我们可以给A类增加一个公有的方法:void Release(A*& p) { delete p;所以走到[n][m]格子的右下角的数量为[n-1][m] + [n][m - 1],可以通过递归实现,情况a为递归的终止条件。假设A类的构造函数是私有的,就不能在构造函数对申请的空间进行初始化,第二步就不能完成了。
2024-02-22 15:03:26
941
原创 【MySQL】表的操作
mysql> alter table user add image_path varchar(128) comment ‘这个是用户的头像路径’ after birthday;在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。mysql> insert into user values (1, ‘张三’, ‘12345’, ‘2010-10-1’);注意:轻易不要做删除和修改,因为数据库在底层,修改或删除,容易出现许多潜在问题。
2024-02-21 18:22:46
951
原创 【MySQL】库的操作
也能看见,他们是联通的,但是不应该在 /var/lib/mysql 中创建,是不合理的。:可以判断database1是否存在,存在,则可以不给你创建了。当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。2、数据库校验集 – 支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式。
2024-02-16 12:44:12
923
原创 【C++】笔试训练(八)
最小公倍数 = 两数之积除以最大公约数,这里使用碾转相除法进行最大公约数的求解:即a与b的最大公约数可以转化为a、b之间的余数为两者之间最小的数之间的公约数。内存作为操作系统中的重要资源,对内存的分配和释放进行管理是一项非常重要的工作,以下说法中错误的是 ______。解析:拷贝构造概念:是一个特殊的构造函数,是单参的,参数的类型必须是类类型&,一般情况下,会使用const来进行修饰。1、重载成类的成员函数----形参数目看起来比该运算符需要的参数个数少1----因为成员函数有隐藏的this。
2024-01-30 18:13:35
825
3
原创 【C++】笔试训练(七)
可以通过先找到距离N最近的两个Fibonacci数,这两个数分别取自距离N的最近的左边一个数L和右边一个数R,然后通过min(N - L, R - N)找到最小步数。B、如果类中具有单个参数的构造函数,该构造函数具有类型转换的作业,编译器在编译代码节点,会调用单参构造函数将3转换为BigNumber的对象。解析:友元函数:不是类的成员函数,不能用指针this调用----但是在友元函数中可以访问类中私有的成员。特殊:单列模式----一个类只能创建一个对象----将构造函数设置为private。
2024-01-25 15:39:52
954
原创 【网络】传输层 -- 详解IP协议及IP协议的分片原理
IP地址分为两个部分, 网络号和主机号网络号: 保证相互连接的两个网段具有不同的标识;主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;不同的子网其实就是把网络号相同的主机放到一起.如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复我们举个例子:学校的学号是有规律的 – 是学校管理者顶层设计出来的学号是定位学生的唯一性学校有各种各样的学院学院有学生会主席,每个学院是有各自群的。
2023-11-30 11:07:05
1291
2
原创 【网络】传输层 --- 详解TCP协议
2次握手,是绝对不行的,凡是客户端发来的SYN,服务器就认为连接成功了,我拿个单片机,发送海量的SYN,一瞬间就把服务器的链接请求满了,资源就没了,海量发送SYN就叫SYN洪水,所以2次握手,非常容易收到攻击。
2023-11-25 11:30:57
1201
1
原创 【网络】应用层 -- http协议
而过了半年后,是去西门还是东门,但是我不知道路修好没,所以我还是去东门看看,看了后,然后再跑到西门,因为我不知道什么时候搬过来,这就是临时重定向,我的认知始终是先去老的店门,后来,老板在西门干久了,生意好,想在西门开,就回老店,贴三个月之内,我们永久搬到西门,所以此时,我们去东门看到这张纸,以后就都会去西门了。概念:有个客户端和服务器,因为某些原因服务器地址换了, 对应网站变了,可是老用户不知道,所以老用户访问的时候,请求之后,服务器不对这个客户端提供服务,只是告诉你当前需要访问其他地址。
2023-10-28 16:06:04
545
3
原创 【C++】笔试训练(六)
对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为: ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根。可以看出:假设放蛋糕的位置是(x1,y1),则不能放蛋糕的位置(x2,y2),满足 x1 == x2, y1 - y2 == 2或者x1 - x2 == 2, y1 == y2。也就是说:如果(x1,y1)放了蛋糕,则满足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋糕。
2023-10-15 12:14:14
340
4
原创 【C++】笔试训练(五)
dp[i] 就是以数组下标为 i 的数做为结尾的最大子序列和,注意是以 i 为结尾,比如说现在有一个数组{6,-3,-2,7,-15,1,2,2},dp[2]就是以-2为结尾的,那么显然dp[2]的最大值就是1(6,-3,-2),dp[3]要以7结尾那么以7结尾的子序列最大和就是8(6,-3,-2,7)。数组名表示数组首元素的地址,n中的第一个元素的类型是int[3],n中的二维数组中,首元素的地址就是int( * )[3]p[0] 和 * (p+0) 是等价的,*p 和 *(p+0)是等价的。
2023-10-11 15:37:00
165
1
原创 【网络】UDP和TCP套接字编程
用PID也是可以的,但是,我们计算机世界里一套题都各有不同的解法,如果用PID来标识进程的唯一性,不是所有进程都有通信,只有部分进程可能会进行网络通信,但是都用PID来标识,则无法区分,这是其一,最重要的是,如果用PID,而PID是OS层面进程管理的概念,也就是网络模块也要包含进程管理的部分,不然无法认识PID,所以就会增加OS中进程管理和网络管理的耦合度。,而一个报文会携带两种IP地址,一种是IPB,一种是Mac地址,两种IP地址都有自己的源IP地址和目的IP地址,源MAC地址和目的Mac地址。
2023-10-09 16:49:08
1022
原创 【C++】笔试训练(四)
2+4可以得到B2=(b+d)/2,3-1可以得到B1=(c-a)/2;解析:数组名只有在 & 和sizeof之后,才表明是数组本身,&a也是一个地址,该地址类型为:int( * )[5],是一个数组指针,(&a + 1)取地址后,加1表示&a向后偏移5个整形元素的大小,所以指向数组的末尾,类型是一个数组指针类型,与p类型不同,所以强转为int *类型。解析:假设flag的值是10,二进制是0000 1010,按位或是有1为1,按位与是有0为0,按位异或是相异为1,所以只有按位与可以,所以选择A。
2023-10-08 13:48:33
169
原创 【MySQL】数据库基础
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。存储数据用文件就可以了,为什么还要弄个数据库?文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便数据库的存储介质:磁盘、内存为了解决上述问题,所以专家们便设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。
2023-10-04 14:05:11
219
2
原创 【C++】C++11--- 线程库及详解lock_guard与unique_lock
详解线程库及其lock_guard与unique_lock的使用
2023-08-07 14:19:44
1333
2
原创 【C语言】C的编译过程&&预处理
FILE:进行编译的源文件LINE:文件当前的行号DATE:文件被编译的日期TIME:文件被编译的时间STDC:如果编译器遵循ANSI C,其值为1,否则未定义注意:这些预定义符号都是语言内置的。return 0;#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或定义宏。宏的声明方式:#define name(parament-list) stuff其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在stuff中。int a = 5;
2023-05-22 11:40:39
1479
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人