C++系统学习
文章平均质量分 95
包括语法,stl.....各种c++知识持续更新
DoKern
这个作者很懒,什么都没留下…
展开
-
c++多态
在看多态之前,建议先看看往期关于继承的讲解,因为多态这里需要用到继承,而继承也是实现多态的基础所谓多态,就是在不同继承关系的类对象,去调用同一个函数,产生了不同的行为。例如学生继承了人,人买票全价,学生买票半价如下代码实现的就是多态public:std::cout原创 2024-04-24 02:47:22 · 858 阅读 · 0 评论 -
c++继承
大家好,这一篇博文主要是详细介绍c++中继承的概念,其中在菱形继承之前的内容都是比较重点的,关于菱形虚继承部分的原理其实有些东西比较复杂,可以简单了解一下,不用过多纠结。首先,面向对象编程的三大特性是封装、继承、多态,而今天我们要学习的就是继承继承是代码复用的一种手段,为什么这么说呢?先看看下面这个案例有一天学校给张三布置了一个作业,就是完成一个图书管理系统,而在写的过程中,张三先考虑的是图书管理系统中存储的对象,这些对象有学生、有教师、有保安等。原创 2024-04-22 15:57:03 · 1786 阅读 · 0 评论 -
STL之string模拟实现
如果要实现简易版的string 无需涉及增容问题,成员变量可以不用存储容量和元素个数。原创 2024-04-07 20:42:24 · 864 阅读 · 2 评论 -
哈希表/散列表(HashTable)c++实现
/扩容Hash hs;if(_count == _table.size())//冲突因子 = 1//拷贝一张表的数据++i)//拷贝一串链表的数据while(cur)else//插入数据else_count++;Hash hs;//这个结点是用来记录cur的前一个结点,方便单链表不是头的删除//第一种情况,删除链表的头节点delete cur;//第二种情况:删除不是头的结点elsedelete cur;原创 2023-06-24 21:01:40 · 979 阅读 · 7 评论 -
红黑树(RBTree)c++实现
在上一期的AVL树中,这种树虽然能保持树的高度是平衡的,但还有一个缺陷那就是会导致频繁旋转,一定程度上降低了树的效率,而我们这期的红黑树解决的就是AVL树中频繁旋转的问题红黑树底层是一颗二叉搜索树,但在结点类中还加入了一个状态用来表示结点红色还是黑色else//查找插入的位置,parent记录上一次查看的结点else//理论上不可能走到这else//调整颜色的接口//如果parent是黑色,那么插入一个红节点就不会违反性质了。原创 2023-06-14 13:05:19 · 564 阅读 · 4 评论 -
c++内存管理(new、delete)
目录前言c/c++中程序内存区域划分c++函数之new的使用方法第一个场景:对任意类型动态开辟一个类型大小的空间第二个场景:对任意类型动态开辟多个类型大小的空间第三个场景:在第一、二场景下还需要对数据初始化c++函数之delete的使用方法第一个场景:对任意开辟一个类型大小空间进行释放第二个场景:对任意开辟多个类型大小空间进行释放c++中为什么提供要提供new/deletec++之new和delete实现原理operator new和operator deleteoperator new[]和operato原创 2024-04-07 12:34:40 · 825 阅读 · 0 评论 -
c++类和对象三部曲——(3)
在前面我们了解到了关于类和对象中的三大默认成员函数,也就是构造函数、析构函数、拷贝构造类和对象之默认三大成员函数(构造函数,析构函数,拷贝构造)_类的构造函数和成员函数-CSDN博客接下来这一篇文章我们需要了解的是关于运算符重载与默认成员函数中的赋值拷贝,以及关于类和对象的一些补充内容,接下来就让我们开始吧!原创 2024-04-05 23:41:42 · 975 阅读 · 1 评论 -
适配器stack和queue
适配器是什么?STL中stack和queue是怎么实现的?原创 2023-05-31 02:32:28 · 291 阅读 · 1 评论 -
vector的模拟实现
stl之vector的简单模拟实现(增删查改,迭代器。。。。)原创 2023-05-28 04:24:12 · 352 阅读 · 5 评论 -
list模拟实现
list是实现的带头双向循环链表,所以在list类中我们需要有一个成员指针指向头节点而为了找到下一个结点,所以我们要在每个结点类中存储一个next指针。为了能找到前一个结点,所以我们要在每个结点类中存储一个prev指针如图:STL中list实现需要有三个类1、一个类用来存储节点的值以及指针(这是针对单个节点而设计的类),我们叫做结点2、一个类用来实现迭代器,因为list中的数据不是连续存储的,原生指针已经无法满足需求了3、一个类用来实现链表,而链表的基本单位是结点。原创 2023-05-29 09:16:07 · 295 阅读 · 3 评论 -
deque介绍
deque的底层介绍,迭代器,operator[],插入。。。原创 2023-05-30 22:30:18 · 705 阅读 · 7 评论 -
高度平衡二叉搜索树(AVLTree)(插入与旋转)
AVL树是基于我们上一期讲过的二叉搜索树改变而来,如果没有看过我上一期博文的可以先看看这一期的代码也是基于上一章的基础上而来的二叉搜索树AVL树就是在二叉搜索树的基础上进行控制左右子树高度差的绝对值不超过1而我们接下来所讲的实现方式加入了平衡因子(bf)其实AVL树的查找与二叉搜索树的查找是一样的,他们之间的差别在于插入与删除而本节内容就针对AVL树的插入来展开话不多说我们正式进入正题int _bf;//新增的平衡因子T _data;原创 2023-06-06 14:36:16 · 438 阅读 · 6 评论 -
二叉搜索树(Binary Seach Tree)模拟实现
二叉搜索树的模拟实现(增删查改)、二叉搜索树的性质、二叉搜索树的缺陷原创 2023-06-04 15:53:46 · 442 阅读 · 4 评论 -
priority_queue(优先级队列)模拟实现(堆方式)
priority_queue的性质是:每个数据都会携带一个优先级优先级较高的数据会优先出队列这里的优先级可以是数据的大小或者其他,总之这个优先级一定要是可以比较大小的东西这里的优先级队列的实现方式我们采用堆的方式!在我们完成了堆的插入和删除后,基本上其他接口与stack和queue一样直接调用底层容器的接口在栈和队列中,我们讲过适配器的概念,而堆其实也可以理解为一个适配器栈和队列而优先级队列的底层是一个堆来实现的,那么优先级队列也可以理解为适配器。原创 2023-05-31 23:55:20 · 880 阅读 · 10 评论 -
c++类与对象三部曲——(1)
初始类与对象,面向对象与面向过程分析,类的定义,类的访问限定符,this指针。。。。原创 2023-04-05 01:12:50 · 257 阅读 · 5 评论 -
c++类和对象三部曲——(2)
默认成员函数(拷贝构造,编译器实现的拷贝构造,默认拷贝构造)(析构,默认析构),(拷贝构造,默认拷贝构造,初识深拷贝浅拷贝问题)原创 2023-04-09 16:15:15 · 739 阅读 · 4 评论 -
c++语法入门
c++语法,从原理层面最详细了解!!!!原创 2023-03-26 03:12:04 · 245 阅读 · 1 评论