- 博客(31)
- 收藏
- 关注
原创 c++:继承
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类1. 很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。2. 多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。3. 继承和组合public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。组合是一种has-a。
2024-11-16 16:55:33
898
原创 c++:stack,queue,priority_queue模拟实现
这三个实现都很简单,只要注意仿函数和向下/上调整算法就没有大问题。蟹蟹观看!关注!评论!一键三连!
2024-11-08 23:00:02
283
原创 c++:stack,queue,priority_queue,deque
队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。
2024-11-08 22:30:58
585
原创 c++:list
在选择使用哪个容器时要根据使用场景选择最适合的容器。只有能区分容器之间的差异才能更好的使用和学习容器。蟹蟹观看!关注!评论!一键三连!
2024-11-08 16:48:29
781
原创 c++:vector
(constructor)构造函数声明接口说明vector()(重点)无参构造构造并初始化n个val(重点)拷贝构造使用迭代器进行初始化构造vector就像是数组的进阶版,想要学会vector最好模拟实现一下vector.蟹蟹观看!关注!评论!一键三连!
2024-11-01 21:18:34
903
原创 c++:string类
大家可以去看string各个接口的具体用是怎么使用的可以看这个网站(英文)或者这个(中文)C++ 标准库 | 菜鸟教程 (runoob.com)
2024-10-26 14:48:47
1177
原创 c++:STL
本篇主要是让大家简单了解一下STL是什么,干什么使的。蟹蟹观看!关注!评论!一键三连!t=O83At=O83At=O83AC++ STL 教程 | 菜鸟教程 (runoob.com)https://www.runoob.com/cplusplus/cpp-stl-tutorial.html。
2024-10-26 12:17:54
786
原创 c++:模板
class 类模板名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public:, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表需要区分一下类模板的实例化部分,什么是类型,什么是类名。蟹蟹观看!关注!评论!一键三连!
2024-10-12 09:09:57
1232
原创 c++:内存管理
operator new与operator delete函数new和delete是用户进行动态内存申请和释放的操作符,operator new 和operator delete是系统提供的全局函数,new在底层调用operator new全局函数来申请空间,delete在底层通过operator delete全局函数来释放空间。
2024-10-10 22:11:56
830
原创 c++:类和对象下
类是对某一类实体(对象)来进行描述的,描述该对象具有那些属性,那些方法,描述完成后就形成了一种新的自定义类型,才用该自定义类型就可以实例化具体的对象。蟹蟹观看!关注!一键三连!要区分拷贝构造和赋值运算符重载,一个是使用同类型初始化,一个是把一个对象赋值给另一个对象。拷贝构造和构造函数构成函数重载。拷贝构造要用引用返回,防止出现无穷递归。蟹蟹观看!关注!一键三连!
2024-10-10 21:54:03
1147
原创 c++:类和对象-中
要区分拷贝构造和赋值运算符重载,一个是使用同类型初始化,一个是把一个对象赋值给另一个对象。拷贝构造和构造函数构成函数重载。拷贝构造要用引用返回,防止出现无穷递归。蟹蟹观看!关注!一键三连!t=O83At=O83Ac++:类和对象-上-优快云博客https://blog.youkuaiyun.com/weixin_67645591/article/details/142689509。
2024-10-04 15:30:08
1583
原创 c++:类和对象-上
C++中通过类可以将数据以及操作数据的方法进行完美结合,通过访问权限可以控制那些方法在类外可以被调用,即封装,在使用时就像使用自己的成员一样,更符合人类对一件事物的认知。蟹蟹观看!关注!一键三连!
2024-10-03 20:30:03
1034
原创 c++:auto关键字(c++11)
当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。// 该行代码会编译失败,因为c和d的初始化表达式类型不同auto在类型名很长的情况下用非常方便。蟹蟹观看!
2024-09-30 10:58:52
399
原创 c++:引用
引用新定义一个变量,而是给已存在变量取了一个,编译器比如:李逵,在家称为"铁牛",江湖上人称"黑旋风"这里的ra是a的别名。定义时必须初始化有多个引用2->李逵的别名有:铁牛,黑旋风。
2024-09-30 10:11:20
524
原创 c++:函数重载
是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的,常用来处理实现功能类似数据类型不同的问题。
2024-09-29 22:20:02
150
原创 c++:命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决int main()return 0;// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数”
2024-09-21 22:11:08
359
原创 常见的排序
理解排序的思想比较重要。写排序时先写单趟排序,然后再改成多趟排序,这样不容易出错。一、排序的概念?所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。数据元素全部放在内存中的排序。
2024-09-20 22:29:25
1198
原创 数据结构 二叉树
想要知道二叉树是什么,先要知道树是什么篇幅较长,主要是顺序结构堆和链式结构二叉树,其中的主要算法:向上/向下调整,先序、后续、中序、层序遍历,还有堆排序,top-k啊啥的。
2024-09-14 11:52:54
649
原创 数据结构 栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO后进先出)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。入栈:2,7,1,8,2出栈:2,8,1,7,2栈和队列比较抽象,本质就是对链表和数组在一定的规则下(先进后出,先进先出)进行增删改查,对照着图来学习会更容易。
2024-09-03 21:51:02
1120
1
原创 数据结构 顺序表和链表
顺序表和链表的实现需要一定的c语言代码能力,需要掌握动态内存管理的相关知识,会使用mallocreallocfree等函数1.中间头部插入,删除数据,需要挪动数据,效率低下。2,空间不够,扩容,扩容有一定损耗,其次可能有一定的空间浪费。
2024-06-03 16:12:37
1700
原创 linux调试器—gdb的常用命令
linux调试器gdb常用命令:list,run,next,step,break,info break,finsh,printf,set var,continue,quit,display等等
2023-07-16 21:48:19
172
1
原创 vim编辑器常用操作指令
n+Shift+g:定位光标到第n行(8) 在命令模式下按一下‘8’,在按Shift+g。n+x:对光标字符之后的字符进行批量删除 例如:3+x。n+dd:剪切/删除 n行内容(从光标位置开始)n+r:对光标字符和之后的所有字符批量替换。Shift+g(G):定位光标到结尾行。Shift+$:定位到当前行的结尾·按照粘贴后的光标位置开始:进行4+dd。Shift+^:定位到当前行的开头。n+yy:复制光标所在行(n行)gg:定位到光标最开始行。n+p:粘贴n次复制的内容。想要记得住还得自己多敲!
2023-07-11 15:29:49
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人