C++
文章平均质量分 96
带你深度探索C++!
YoungMLet
这个作者很懒,什么都没留下…
展开
-
【C++】IO流
介绍C++中的IO流,标准IO流和问文件流!原创 2024-01-23 09:03:26 · 2035 阅读 · 124 评论 -
【C++】特殊类的设计
C++特殊类的设计,主要包括单例模式,介绍饿汉模式和懒汉模式!原创 2024-01-21 00:49:17 · 2046 阅读 · 141 评论 -
【C++】类型转换
介绍C++中的类型转换,static_cast、reinterpret_cast、const_cast、dynamic_cast原创 2024-01-19 00:07:25 · 2037 阅读 · 138 评论 -
【C++】智能指针
讲解C++智能指针的原理,内存泄漏的危害,分析三种智能指针的功能和原理!原创 2024-01-17 10:46:17 · 2232 阅读 · 125 评论 -
【C++】异常机制
讲解C++中的异常机制!原创 2024-01-15 09:00:24 · 2326 阅读 · 154 评论 -
【C++】C++11中的常见语法(下)
C++11中的常见语法!本章包括介绍C++11中的可变参数模板、lambda 表达式和包装器!原创 2024-01-13 00:15:35 · 2961 阅读 · 95 评论 -
【C++】C++11中的常见语法(上)
C++11 的常见语法介绍!包括C++11简介、列表初始化、initializer_list、C++11的声明(auto、decltype、nullptr)、右值引用和移动语义、新的类功能!原创 2024-01-11 00:46:11 · 2832 阅读 · 137 评论 -
【C++】STL --- 哈希
了解 unordered_map/unordered_set 的使用和简单实现哈希!介绍哈希的应用 --- 位图和布隆过滤器!原创 2023-11-29 15:52:08 · 1799 阅读 · 98 评论 -
【C++】红黑树 --- map/set 底层
了解 map/set 底层红黑树的插入!使用红黑树封装 map/set !原创 2023-11-13 00:32:18 · 1097 阅读 · 76 评论 -
【C++】AVL树
万字带你解析AVL树的底层插入原理!原创 2023-11-10 16:09:58 · 510 阅读 · 64 评论 -
【C++】map & set
set 是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。set在底层是用二叉搜索树(红黑树)实现的。与不同,中存储的是真正的键值对set中只放value,但在底层实际存放的是由构成的键值对。set中插入元素时,只需要插入value即可,不需要构造键值对。set中的元素不可以重复。原创 2023-11-07 00:59:51 · 467 阅读 · 44 评论 -
【C++】二叉搜索树
二叉搜索树又称二叉排序树,可以简写成 BST,它或者是一棵空树,或者是具有以下性质的二叉树:如下就为一颗简单的二叉搜索树:插入的具体过程如下:例如有以下这个数组,依次按照数组的元素插入就如下图的二叉搜索树:int a[] = {8, 3, 1, 10, 6, 4, 7, 14, 13};再分别插入 0 和 16 后,如下图所示:首先查找元素是否在二叉搜索树中,如果不存在,则返回, 否则要删除的结点可能分下面四种情况:看起来有待删除节点有 4 种情况,实际情况第一种情况(左右都为空)可以与情况二或者三合并起原创 2023-11-03 01:08:30 · 391 阅读 · 47 评论 -
【C++】类和对象(上篇)
但是实际上在 C++ 中更喜欢用class来代替 struct,class为定义类的关键字,类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。类声明放在 .h 文件中,成员函数定义放在 .cpp 文件中,注意:.cpp 实现的成员函数名前需要加类名,例如以下代码:public:// 初始化// 入栈private:int* a;原创 2023-07-22 11:08:22 · 262 阅读 · 9 评论 -
【C++】STL---list
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与非常相似:最主要的不同在于是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。与其他序列式容器相比,list和最大的缺陷是不支持任意位置的随机访问,比如:要访问。原创 2023-08-19 12:11:31 · 707 阅读 · 27 评论 -
【C++】类和对象(下篇)
初始化列表的用法是,以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个 “成员变量” 后面跟一个放在括号中的初始值或表达式。原创 2023-08-01 10:00:14 · 390 阅读 · 20 评论 -
【C++】C++入门必备知识详细讲解
C++入门超详细讲解分析(建议收藏!)原创 2023-07-19 21:15:48 · 1738 阅读 · 12 评论 -
【C++】初识模板
函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用。类型的代码,对于字符类型也是如此,即编译器用模板实例化生成对应的Swap 函数。关键字后面要用尖括号括住模板参数,模板参数的数量可以是任意的,但是需要使用。用不同类型的参数使用函数模板时,称为函数模板的实例化。原创 2023-08-09 11:42:11 · 291 阅读 · 16 评论 -
【C++】STL---vector
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小。为了增加存储空间,其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,原创 2023-08-15 10:24:13 · 456 阅读 · 22 评论 -
【C++】继承和多态
继承的定义格式如下,Person是父类/基类Student是子类/派生类public为继承方式继承和组合public继承是一种is-a的关系。也就是说每个子类对象都是一个父类对象。组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象。什么是组合呢?如下代码就是组合,其中是B组合了Aclass Apublic:int _a;A a;优先使用对象组合,而不是类继承。继承允许我们根据父类的实现来定义子类的实现。原创 2023-10-24 23:29:39 · 677 阅读 · 43 评论 -
【C++】类和对象(中篇)
在往期 类和对象(上篇) 中,我们初步接触了C++中的类和对象,接下来我会和大家分享有关这个知识点更多的内容~如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数,下面我会带大家介绍类的六大默认成员函数。我们在类和对象上篇的时候,我们写了一个对日期初始化的函数 Init,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?原创 2023-07-28 16:59:03 · 316 阅读 · 8 评论 -
【C++】内存管理
new/deleteint main()// 调用构造函数,使用缺省值初始化// 调用析构函数// 调用构造函数,使用 10 初始化// 调用析构函数// 申请3个A类型的空间// 调用析构函数return 0;注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而 malloc 与 free 不会。new的原理调用operator new函数申请空间。原创 2023-08-05 08:52:17 · 300 阅读 · 13 评论 -
【C++】string
C语言中,字符串是以 ‘\0’ 结尾的一些字符的集合,为了操作方便,C标准库中提供了一些 str 系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。的时候,为了方便查看字符串,我们可以重载流插入和流提取,方便打印查看字符串;在以前讲过,我们为了方便我们的使用以及体现流插入和提取的使用价值,我们要在类外面实现,防止。或者容量是 0,我们就默认开 4 个容量。类的接口,在实现的过程中讲解用法,注意,我们只模拟比较常见和重要的接口。原创 2023-08-12 09:15:32 · 557 阅读 · 90 评论 -
【C++】stack & queue
我们先可以看一下stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。stackempty:判空操作back:获取尾部元素操作push_back:尾部插入元素操作pop_back:尾部删除元素操作标准容器。原创 2023-09-25 16:21:15 · 340 阅读 · 26 评论 -
【C++】进阶模板
【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2023-10-12 16:44:37 · 340 阅读 · 36 评论