- 博客(55)
- 收藏
- 关注
原创 C++ 面试题 static_cast 也可以用于基类和子类的转换,为什么还要dynamic_cast?
可以用于基类和派生类之间的转换,但是没有运行时类型检查,因此在多态环境下可能会导致未定义的行为;提供了运行时类型检查,确保只有当基类指针实际指向派生类对象时才会执行转换。使得转换更加安全,尤其是在涉及到多态和虚函数的情况下。
2024-09-18 16:38:12 140
原创 C++ STL中sort函数
刷题中经常遇到,用于各种元素排序,可以自定义排序方式,vector、deque适用。详细讲解:https://zhuanlan.zhihu.com/p/36274119。,为避免QuickSort快排的递归调用带来过大的额外负荷,就改用。一旦分段后的数据量小于某个门槛。STL的sort算法,
2024-09-15 11:40:06 468
原创 力扣刷题总结——栈和队列
可以出一道面试题:栈里面的元素在内存中是连续分布的么?刷完栈和队列,对STL的内容有了更加深刻的认识。,而被归类为container adapter(栈的内部结构,栈的底层实现可以是。都是可以的, 主要就是。
2024-04-27 20:39:20 439
原创 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 777
原创 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 1113 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 307
原创 C++ 指针越界的小实验
可以看出一点规律,即使指针访问越界,指针本身的值(地址)也是在以int大小(4)逐渐增加的,而它的解引用却比较奇怪,从边界+1的位置开始,呈现出。目前学的很浅,不知道原因,这里先记录一下,深入学习后再来更新。如果一个指针指向的数组发生指针越界时会怎么样呢?
2024-04-17 12:42:46 164
原创 KMP算法笔记-力扣28.找出字符串中第一个匹配项的下标
如果函数形参是int* next,那么实参就是&next[0],把首元素地址传过去,然后用一个in类型的指针指向它。例如,对于一个数组 int a[],你可以直接将 a 作为参数传递给函数,因为 a 本身就是数组的地址。相等的前缀和后缀,匹配失败的位置是 后缀子串 的后面(f),那么我们找到与后缀aa相同的前缀aa的 后面(b)重新匹配就可以了。前后缀不相等就回退,前后缀相等就更新next数组的值,最终得出next数组。vector 是一个。的,因此可以通过数组名或数组的指针来访问数组的元素。
2024-04-15 12:53:18 621
原创 C++ 一个有关类模板、构造函数、析构函数、拷贝构造、重载等的数组案例分析
我有个点不太确定,请大佬指正是否正确:因为arr1 2 3是创建在栈上的局部变量,所以遵循先进后出的原则释放,所以先释放arr3,然后依次释放arr2、arr1。花了两个多星期,黑马的课程终于看到STL模板库了,后面继续学习加油吧(ง •_•)ง。Main.cpp代码。
2024-04-12 16:45:48 364
原创 C++多态 内在原理剖析
这里由于创建的还是cat子类对象,所以调用speak公共接口时候,会从子类中找函数确实的入口地址,确定是cat的入口地址就会做cat的speak函数,确定是dog的入口地址就会做dog的speak函数。1、父类中定义虚函数会生成一个虚函数(表)指针,指向一个虚函数表,表内记录虚函数的地址:&Animal::speak, 这里用引用表示地址,speak是虚函数。当父类的指针或者引用指向子类对象时候,发生多态(运行时发生,属于动态多态)子类也只继承虚函数的指针:虚函数(表)指针,它指向一个虚函数表。
2024-04-09 13:52:47 371 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人