自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tiz

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

原创 主从Reactor服务器

此时该连接有新的通信,(通过调用回调的方式,任意事件回调)那么我们就针对该连接的智能指针再创建一个智能指针,使得智能指针的计数器+1,并将对断开连接的操作放到时间轮的新位置,这样,当 时间轮走到旧的位置时,虽然仍然会释放连接,智能指针的计数-1,但由于计数未到0,不执行类的析构函数,达到刷新任务的目的,也就是我们说的非活跃连接销毁。调用对应的处理函数后,再将函数处理结果接入响应报文的正文之中,就可以按照响应报文的格式组织发送了,发送完毕后,重置该连接的上下文,并根据其长短连接属性决定是否断开连接。

2024-05-14 16:26:14 457 1

原创 BoostSeacher

基于Boost库建立的搜索引擎

2024-03-25 14:23:20 1635

原创 polymorphic--多态

多态,顾名思义,多种形态。指的是不同的人做相同的事会产生不同的结果。在程序上的表现就是,不同的对象调用同一个函数会呈现不同的结果。

2024-05-19 09:51:10 271 3

原创 杂记3(指各种知识)

在signed char中,0有两种表示方式即00000000和10000000(这样的话只能表示-127--127这255个数字)。由于共用体所有成员是共用一块空间的,因此计算共用体的大小只用找到最大成员的大小,并确保它是最大对齐数(包括嵌套联合体成员的对齐数)的整数倍就可以了。举个例子,像是10000010,因为它是有符号数,最左侧的1会被当作符号位,表示负且不计算值的大小(如果是0则表示正),如果你这样认为那么你就错辣!实际上,signed char的取值范围是-128--127。

2024-05-17 10:11:12 798

原创 杂记2(指各种知识)

笔记

2024-05-17 10:05:16 273

原创 杂记1(指各种知识)

杂记

2024-05-17 10:01:46 638

原创 智能指针!

干什么用的?将智能指针封装成类,利用类对象释放时调用析构函数的特点,将资源交给智能指针管理利用对象生命周期控制资源——RAII如何过渡到下面这个问题的?智能指针的拷贝,默认是浅拷贝,即多个智能指针会指向同一份资源。这是没有问题的,符合智能指针的定义这样做的问题是,同份资源会被多次析构为了解决智能指针拷贝(拷贝构造、赋值拷贝)导致的多次析构的问题,衍生出了如下3种智能指针。

2024-05-16 21:31:32 560 1

原创 Linux——动/静态库

作用于编译阶段,告诉编译器产生与位置无关的代码,此时产生的代码中没有绝对地址,全部都使用相对地址,从而代码可以被加载器加载到内存的任意位置都可以正确的执行。由于库是.o文件的集合,所以我们要先自己创造一批.o文件,(.o文件是由源文件生成的),除此之外,我们还需要头文件,为将调用的库函数做声明。也是要在默认路径下搜索库文件的,加载器并不知道我们的库文件存在哪个路径。注:在Linux中,去掉lib与.so及其后面的版本号就是该库的名称,.so后缀表示这是动态库,.a后缀表示这是静态库。

2024-01-07 12:09:46 1874 3

原创 Linux--基础IO

I input;O output 以我目前的理解,我认为IO就是“写进去”与“拿出来”的过程。比如说文件IO,就是把内容写进文件里面,得到文件里的内容的过程。那么,往文件内容写东西,得到文件内容,有哪些“手段”呢?FILE是一个结构体,要想成功访问文件,那么FILE结构体中就一定有存储fd的变量。FILE是结构体_IO_FILE的重命名如下是_IO_FILE的成员变量,_fileno是用于存放fd的缓冲区,是一块内存的空间,是用于存放数据的地方。

2024-01-02 19:42:33 1566 3

原创 输出重定向

ls > log.txt是什么意思?我们先来看看现象我们当前所处的目录有以下文件/文件夹接着我们执行 ls > log.txt我们发现:当前目录下创建了log.txt文件,log.txt存储了ls命令执行的结果。这是怎么一回事呢?我们把这种现象成为以ls>log.txt为例,他把本该输出到显示器的内容输出到了log.txt文件里了。所以才会发生上述现象。

2023-11-20 10:06:03 47

原创 每日一练大合集

堆排序:升序-大堆 降序-小堆 堆顶元素和堆尾元素交换,除堆尾元素外进行向下调整。TOP-K问题:找最大的K个数,建K个元素的小堆,反之建大堆。删除:堆顶元素与堆尾元素替换,除了堆尾元素外再向下调整。知识点Q(1:200)意思是从下标1到下标200。知识点:查找长度:成功找到该数的次数。建堆:向上调整、向下调整(效率更高)知识点:二叉排序树就是二叉搜索树。求两个数的最大公约数:辗转相除法。怎么做:题意理解+画图。

2023-11-12 14:32:57 32

原创 每日一练Day9(大合集)

在end2入队列,end2++,在end2前(end2-1)出队列,end2--;在end1入队列,end1--。知识点:在多继承中,如果父类指针指向子类,但该父类没有虚表,调用析构函数会报错。什么是不稳定,相同元素的相对位置发生改变,快排会改变相同元素的相对位置。A.插入可能会扩容,生成新的内存空间,此时迭代器指向的空间已被释放。题目中说的队列两端其实指的是end1(头)与end2(尾)。正常的循环队列是:在end1处出队列,在end2处入队列。知识点:迭代器失效,是指迭代器指向的空间不存在了。

2023-11-04 13:51:58 18

原创 每日一练Day8

我们已经重写了析构函数,并把它设置为虚函数,此时p1指向的是student中的person,person里有一张虚表,虚表里存放了重写后的析构函数的地址,p1会调用这个析构函数。知识点:A的确是继承了B的成员(成员函数,成员变量),但是A访问这些成员仍然要遵守这些成员在B类的访问规则,例如:A继承了i,但是i仍然是private的,因此不能在类外类中访问。只调用了父类析构,why?因为我p1是person*类型,指向的是student中的person,所以它会调用student中person的析构函数。

2023-10-21 14:39:00 29

原创 每日一练_DAY5

练习

2023-10-16 10:39:13 28

原创 每日一练_DAY4

练习

2023-10-16 10:38:41 30

原创 每日一练Day7

练习

2023-10-16 10:38:02 35 1

原创 每日一练Day8

当函数返回值是类类型对象时 编译器会对他进行优化 具体怎么个优化法呢 比如传回来一个类类型对象 要用它初始化另一个类对象 这时不会调用拷贝构造 而是直接赋给他。D为什么错 x是构造函数的形参是临沭变量 构造函数结束后 x对应的那片内存就还给操作系统了 值可能会发生改变。p是一个指针 但是它的指向地址现在是随机的 所以不能随便解引用。前几天写的被csdn吞了。拷贝构造是一种初始化 是用已经存在的对象初始化新的对象。1首先使用malloc开辟需要类型大小的空间。2调用该类型的构造函数。1调用该类型的析构函数。

2023-10-15 23:26:47 40 1

原创 每日一练DAY_3

知识点:[]的优先级比**高,所以这是一个三行四列的二维数组,里面存放的是**类型的指针?int(*p)[4]因为括号的原因,p先于*结合,p是一个数组指针。const在*的左边,指针所指向内容不能改变,指针的指向可以改变。const在*的右边,指针不能改变,指针指向的内容可以改变。所以p先于[4]结合,因此 int* p[4]是指针数组。知识点:const与*的相对位置,知识点:'\n'代表的就是回车符。知识点:[]的优先级比*高。printf的实现?

2023-10-03 16:02:39 32

原创 每日一练DAY_25_9

a[i]代表某个字母,'Z'-a[i]即这个字母与'Z'的相对距离,这个相对距离就是这个字母在count数组中的下标。例如'Z'-'Z'=0,0就是'Z'在count数组中的下标。小总结一下:字符与数字的转换有一个ASCII码表,是一个数字、字符相互映射的表,比如字符'A'的10进制是65,因而字符间相减的时候其实是他们所对应的10进制数字在相减,综上,字符间的运算最终是其所映射的数字间的运算。前者将'a''b''c''\0'存储在数组acX里,数组内容可以改变。字符-字符得到 数字(字符间的相对距离)

2023-09-28 19:37:09 24 1

原创 每日一练DAY_24_9

每日一练哦哦

2023-09-24 20:27:41 40 1

原创 Inheritance--继承

1.若子类和父类存在同名成员,子类对象会优先访问子类中的同名成员2.构成隐藏/重定义的条件,父类与子类中存在同名成员1.二义性由于Child1与Child2都继承了Father的成员,Grandchild又继承自Child1、Child2,那么当Grandchild访问Father中的成员时就会产生二义性,究竟是访问Child1里的Father成员,还是Child2里的Father成员呢?解决方案1,指明访问路径为什么g1._name 没有报错?

2023-08-07 10:46:37 68 6

原创 在实现list时所遇到的问题

在list中具体的场景:在list中,iterator迭代器被封装成了类,iterator类中有 operator!= 这一重载函数//iterator本质上还是一个指向Node类型的指针。调用 operator!编译器会报错,如下:我们不是写了!=的重载函数吗?报错说不匹配,那么只可能是参数不匹配。实参是:lt1.end() ,形参是:__list_iterator& it函数的返回方式有两类,一类是传值返回,一类是传引用返回。这里是传值返回。

2023-07-27 15:30:28 70 1

原创 关于拷贝构造函数的3个问题

形参的类型是自定义类型Date。与内置类型不同的是,内置类型的初始化拷贝可以按字节赋值拷贝,而自定义类型初始化拷贝的规则我们是不知道的,因此需要调用它的拷贝构造函数。由于自定义类型对象的赋值拷贝(指初始化的时候)要调用其拷贝构造函数,所以拷贝构造函数的形参应该用引用。拷贝构造完成的是 初始化 的工作,即只能进行一次。拷贝构造是创造一个自定义类型的对象,赋值运算是对已经存在的对象进行赋值。是类中六大默认成员函数之一。问题3:类中生成的 默认 拷贝构造函数是怎样的。问题2:拷贝构造函数的形参为什么是引用?

2023-07-27 15:29:38 58 1

原创 Basic knowledge-scanf

下图中,我用键盘一次性输入了10 20 30,随即按下回车,表明一次输入完成,但程序直接输出了10 20 30.逻辑是,我把 10空格20空格30回车 输入到了输入缓冲区,10 被提取给了a,随即遇到空格,scanf结束。接着是第二个scanf,检查输入缓冲区是否有数据,此时存在20 30,提取20给b,随即遇到空格,结束这次的scanf。scanf 输入成功的返回值是 输入的个数 eg:scanf(“%d",&a),返回1。scanf会自动在输入缓冲区读取数据(如果有数据的话,没有的话就会等待用户输入)

2023-05-24 21:34:00 44

原创 C++入门(命名空间)

C++命名空间

2023-05-21 16:56:30 54 4

原创 关于带环链表的结论

关于带环链表的结论

2023-03-16 21:29:12 63 4

原创 单链表分析

单链表的头插头删与尾插尾删

2023-03-01 10:53:23 181 7

原创 整形提升及例题

整型提升和例题

2023-02-16 17:27:51 49

原创 用冒泡排序的思想模拟实现Qsort

用冒泡排序的思想实现qsort

2023-02-16 17:26:16 38

原创 动态内存分配

动态内存分配函数

2022-12-17 20:59:01 161 6

原创 关于指针的知识点

指针的知识点

2022-11-20 21:47:27 572 5

原创 扫雷的实现(初级版)

扫雷

2022-11-16 16:21:04 92

原创 一些操作符的知识点

操作符知识点

2022-11-13 23:12:47 74

原创 辗转相除法原理的图形化

辗转相除法原理的图形化

2022-10-27 20:25:40 148

原创 新的十月(2022.10.15)

新人的自述

2022-10-15 14:37:18 57

C语言习题.rar

C语言习题.rar

2023-05-30

空空如也

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

TA关注的人

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