自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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模拟实现

list的难点主要在迭代器的封装,反向迭代器的实现,和模板。蟹蟹观看!关注!评论!一键三连!

2024-11-08 20:15:11 499

原创 c++:list

在选择使用哪个容器时要根据使用场景选择最适合的容器。只有能区分容器之间的差异才能更好的使用和学习容器。蟹蟹观看!关注!评论!一键三连!

2024-11-08 16:48:29 781

原创 c++:vector模拟实现

vector实现只要注意迭代器失效的问题和拷贝不能用memcpy这俩问题。蟹蟹观看!关注!评论!一键三连!

2024-11-01 23:24:55 446

原创 c++:vector

(constructor)构造函数声明接口说明vector()(重点)无参构造构造并初始化n个val(重点)拷贝构造使用迭代器进行初始化构造vector就像是数组的进阶版,想要学会vector最好模拟实现一下vector.蟹蟹观看!关注!评论!一键三连!

2024-11-01 21:18:34 903

原创 c++:模拟实现string类

想要学好库中的string最好自己实现一个出来,能够加深对string的理解。蟹蟹观看!关注!评论!一键三连!

2024-10-26 16:09:30 597

原创 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

原创 Linux:常用指令

以上指令足够基本操作。多敲,多练。蟹蟹观看!关注!评论!一键三联!

2024-10-15 22:05:34 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++:运算符重载

注意:如果类中未涉及到资源管理,赋值运算符是否实现都可以;一旦涉及到资源管理则必须要实现。

2024-10-04 15:21:26 395

原创 c++:类和对象-上

C++中通过类可以将数据以及操作数据的方法进行完美结合,通过访问权限可以控制那些方法在类外可以被调用,即封装,在使用时就像使用自己的成员一样,更符合人类对一件事物的认知。蟹蟹观看!关注!一键三连!

2024-10-03 20:30:03 1034

原创 c++:内联函数

内联函数只是一个建议,是否成为内联还要看编译器。蟹蟹观看!关注!一键三连!

2024-10-03 10:19:16 343

原创 c++:基于范围的for循环(C++11)

范围for用起来很方便,能减少出错。蟹蟹观看!

2024-09-30 11:09:36 276

原创 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++:缺省参数

缺省参数只要勤加练习就可掌握。

2024-09-21 22:30:42 335

原创 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

原创 数据结构 时间复杂度和空间复杂度

需要几个数学公式:等差等比的数列求和公式和指数对数转换的公式。知道二分查找,递归,冒泡的思想。

2024-05-23 17:34:56 1557 1

原创 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关注的人

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