- 博客(44)
- 收藏
- 关注
原创 Linux muduo 网络库
好处:能够把网络IO的代码和业务代码区分开来 - 处理用户的连接断开 用户的可读可写。TcpServer : 用于编写服务器程序的。TcpClient : 用于编写客户端程序的。阻塞、非阻塞、IO复用、信号驱动、异步IO。采用epoll + 线程池的方式。1、阻塞、非阻塞、同步、异步。3、muduo网络库。
2024-07-07 20:56:51 254
原创 力扣刷题总结——栈和队列
可以出一道面试题:栈里面的元素在内存中是连续分布的么?刷完栈和队列,对STL的内容有了更加深刻的认识。,而被归类为container adapter(栈的内部结构,栈的底层实现可以是。都是可以的, 主要就是。
2024-04-27 20:39:20 383
原创 Linux fcntl函数
(dup2复制指定的fd,而F_DUPFD用的是lowerst)On success, the new file descriptor is returned.fd是文件描述符,cmd是命令(定义的宏),…表示可变的参数(可有可不有)作用:复制文件描述符、设置/获取文件的状态标志。读法:file control函数。指定的文件描述符文件状态flag。文件描述符文件状态flag。
2024-04-23 11:17:16 737
原创 Linux 系统IO函数之stat、lstat函数
1、普通文件(regular file)2、目录(directory)3、字符设备(character device)4、块设备(block device)5、管道(FIFO)6、符号链接文件(symbolic link)7、套接字文件(socket)详情看。
2024-04-22 18:44:25 981 1
原创 Linux GDB调试
可以看出加入-g文件变大了。gdb test(gdb) help (查看帮助文档)(gdb) q (退出)-g选项的作用是在可执行文件中加入源代码信息,比如可执行文件中第几条机器指令对应源代码的第几行,并没有把源代码嵌入可执行文件中。所以源代码文件不可以没有。1、显示(gdb) list357 int a, b;12 b = 30;++i) {(gdb) list 10 (第十行开始显示)
2024-04-21 19:45:25 288
原创 C++ 指针越界的小实验
可以看出一点规律,即使指针访问越界,指针本身的值(地址)也是在以int大小(4)逐渐增加的,而它的解引用却比较奇怪,从边界+1的位置开始,呈现出。目前学的很浅,不知道原因,这里先记录一下,深入学习后再来更新。如果一个指针指向的数组发生指针越界时会怎么样呢?
2024-04-17 12:42:46 143
原创 KMP算法笔记-力扣28.找出字符串中第一个匹配项的下标
如果函数形参是int* next,那么实参就是&next[0],把首元素地址传过去,然后用一个in类型的指针指向它。例如,对于一个数组 int a[],你可以直接将 a 作为参数传递给函数,因为 a 本身就是数组的地址。相等的前缀和后缀,匹配失败的位置是 后缀子串 的后面(f),那么我们找到与后缀aa相同的前缀aa的 后面(b)重新匹配就可以了。前后缀不相等就回退,前后缀相等就更新next数组的值,最终得出next数组。vector 是一个。的,因此可以通过数组名或数组的指针来访问数组的元素。
2024-04-15 12:53:18 593
原创 C++ 一个有关类模板、构造函数、析构函数、拷贝构造、重载等的数组案例分析
我有个点不太确定,请大佬指正是否正确:因为arr1 2 3是创建在栈上的局部变量,所以遵循先进后出的原则释放,所以先释放arr3,然后依次释放arr2、arr1。花了两个多星期,黑马的课程终于看到STL模板库了,后面继续学习加油吧(ง •_•)ง。Main.cpp代码。
2024-04-12 16:45:48 324
原创 C++多态 内在原理剖析
这里由于创建的还是cat子类对象,所以调用speak公共接口时候,会从子类中找函数确实的入口地址,确定是cat的入口地址就会做cat的speak函数,确定是dog的入口地址就会做dog的speak函数。1、父类中定义虚函数会生成一个虚函数(表)指针,指向一个虚函数表,表内记录虚函数的地址:&Animal::speak, 这里用引用表示地址,speak是虚函数。当父类的指针或者引用指向子类对象时候,发生多态(运行时发生,属于动态多态)子类也只继承虚函数的指针:虚函数(表)指针,它指向一个虚函数表。
2024-04-09 13:52:47 347 1
原创 C++ this指针的概念和使用
在C++中成员变量和成员函数是分开存储的。每一个非静态成员只会诞生函数实例,也就是说多个同类型的对象会。那么问题是:这一块代码是如何区分哪个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。!this指针是在每一个 非静态成员函数 内的一种指针(内置的,我一直都在你身体里哦~)。this指针不需要定义,直接使用即可。
2024-04-06 15:26:47 1116 1
原创 C++使用g++链接动态库时遇到的问题
报错动态库加载失败:cannot open shared object file: No such file or directory。通过这以下命令创建动态库libcircle.so和libpoint.so(默认当前路径在main函数这里)有了,再运行./case2_share_main就可以正常运行了!看一下case2_share_main的动态库依赖关系。主文件:case2_main.cpp。头文件夹:include。
2024-04-03 15:00:44 370 1
原创 C++中指针delete的学习心得
2、delete掉的指针初始化为nullptr(C++11新标准下避免使用NULL),此时输出c会是0(也就是它的地址),而不能输出*c,因为空指针不指向所有对象。1、利用delete可以释放堆区的数据,但是并不会让这个指针消失,而是会统一的都指向某个地址,这个地址所对应的值也是一个 不确定 的值。通过我尝试发现,再重新预处理、编译、汇编、链接后,上面两个值会变化(我目前还不知道什么原因,还在学习中。new 和delete是运算符,不是函数,因此执行效率更高,malloc和free是函数;
2024-04-01 15:44:00 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人