C++学习
文章平均质量分 92
世真
越是憧憬,越要风雨兼程
展开
-
C++ 线程库
C++ 线程库是 C++11 标准中引入的一个特性,它使得 C++ 在语言级别上支持多线程编程,不需要依赖第三方库或操作系统 API。原创 2023-03-04 16:08:15 · 1108 阅读 · 0 评论 -
[C++数据结构](34)B树
1970 年,R.Bayer 和 E.mccreight 提出了一种适用于外查找的树,它是一种平衡的多叉树,称为 B 树(或 B-树、B_树)。原创 2022-12-14 21:02:08 · 484 阅读 · 0 评论 -
[C++数据结构](33)图,图的遍历,最小生成树,最短路径算法详解
本文讲解图结构及其算法,内容包含但不限于图的深度优先遍历和广度优先遍历, Dijkstra 算法,Bellman-Ford 算法,Floyd算法,Kruskal 算法和 Prim 算法。涉及动态规划和贪心的思想,C++代码实现注释详细。原创 2022-11-19 16:18:07 · 1064 阅读 · 0 评论 -
[C++数据结构](32)并查集
并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。原创 2022-11-16 17:24:48 · 257 阅读 · 0 评论 -
[C++数据结构](31)哈夫曼树,哈夫曼编码与解码
哈夫曼树又称最优二叉树,它是由 n 个带权叶子结点构成的所有二叉树中带权路径长度 WPL 最短的二叉树。其具有叶结点权值越小,离根越远,叶结点权值越大,离根越近的特点,此外其仅有叶结点的度为0 ,其他结点度均为2。原创 2022-10-28 17:11:44 · 4190 阅读 · 0 评论 -
[C++] IO流,文件输入输出,string流,类型转换运算符
C++不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO,这些类型支持从设备读取数据,向设备写入数据的IO操作,设备可以是文件,控制台窗口等。还有一些类型允许内存IO,即,从 string 读取数据,向 string 写入数据。原创 2022-10-12 20:50:32 · 836 阅读 · 1 评论 -
[C++]特殊类的设计:单例模式
特殊类的设计原创 2022-10-11 22:06:35 · 447 阅读 · 0 评论 -
[C++]引用折叠规则,std::move如何工作
通过类型别名或模板参数间接创建的引用的引用会发生折叠。move函数则是利用了这一特性,以及显式地强制类型转换static_cast实现的原创 2022-10-07 19:03:56 · 827 阅读 · 0 评论 -
[C++](27)强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast
C++ 规范的强制类型转换方式原创 2022-09-30 17:44:08 · 1028 阅读 · 0 评论 -
[C++](26)智能指针
C++智能指针的引入,很大程度上方便了程序员的内存管理,如何了解智能指针的原理,正确使用智能指针,是我们学习的重点原创 2022-09-29 23:10:44 · 501 阅读 · 0 评论 -
[C++](25)异常
异常是一种新的处理错误的方式,当一个函数发现自己无法处理的错误时,就会抛出异常,让函数的直接或间接调用者处理这个错误。原创 2022-09-27 23:24:48 · 315 阅读 · 0 评论 -
[C++11新特性](24)列表初始化,右值引用,可变参数模板,lambda表达式,包装器
C++11是继C++98发布后13年来第一次重大修正。增加了许多新语法特性,本文重点讲解其中最好用最常用的新语法特性原创 2022-09-26 23:24:32 · 621 阅读 · 6 评论 -
[C++数据结构](23)哈希:位图,布隆过滤器,哈希切割
关于哈希表的扩展数据结构,及一些常见案例原创 2022-09-18 22:46:36 · 408 阅读 · 0 评论 -
[C++数据结构](22)哈希表与unordered_set,unordered_map实现
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。原创 2022-09-16 17:03:47 · 835 阅读 · 5 评论 -
[C++](21)set和map的模拟实现
基于红黑树进行的封装原创 2022-08-07 16:21:47 · 298 阅读 · 0 评论 -
[C++](20)红黑树,调整规则图解,插入功能代码实现
红黑树和AVL树都是高效的平衡二叉树,而红黑树不追求绝对的平衡,降低了旋转次数,总体性能更优。原创 2022-08-04 18:31:59 · 301 阅读 · 0 评论 -
[C++](19)AVL树插入,旋转,详细图解与代码
AVL树是最先发明的自平衡二叉搜索树。本文通俗讲解了其旋转平衡的原理,并通过C++代码实现其插入功能。原创 2022-08-02 22:21:36 · 599 阅读 · 6 评论 -
[C++](18)STL - set 和 map 的使用
Sets are containers that store unique elements following a specific order.Maps are associative containers that store elements formed by a combination of a key value and a mapped value, following a specific order.原创 2022-08-01 11:48:47 · 284 阅读 · 4 评论 -
[C++](17)数据结构:二叉搜索树的操作与实现
二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。...原创 2022-07-29 16:38:14 · 457 阅读 · 6 评论 -
[C++](16)多态:虚函数,使用,多态的原理
多态是建立在继承的基础之上,子类对父类的方法进行重写,即父类同一个方法,在继承的子类中表现出不同的形式。原创 2022-07-24 16:41:44 · 666 阅读 · 6 评论 -
[C++](15)继承
通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。...原创 2022-07-20 10:18:18 · 217 阅读 · 5 评论 -
[C++](14)模板的特化 非类型模板参数
模板内容补充。。。原创 2022-07-17 22:13:02 · 575 阅读 · 3 评论 -
[C++](13)stack && queue && priority_queue 模拟实现:容器适配器,deque介绍,仿函数详解
栈和队列的使用及模拟实现,堆,适配器,仿函数。。。原创 2022-07-17 15:02:19 · 484 阅读 · 10 评论 -
[C++](12)list的使用与模拟实现:list迭代器实现
了解 list 的使用。list 的实现,关于迭代器的实现是本章的重点,有助于深入对类和对象,模板的理解原创 2022-07-13 14:49:31 · 1047 阅读 · 9 评论 -
[C++](11)vector的使用与模拟实现:迭代器失效,深浅拷贝详细剖析
vector就是顺序表,但是和我们用C语言写的顺序表不同。用法和实现上与string大致相似,但还有许多细节上的差别。原创 2022-07-10 23:15:01 · 1032 阅读 · 9 评论 -
[C++](10)C++的string类如何实现?
string类主要函数的实现也是面试的常考内容。认真学完本篇文章,你一定会对string类有更深刻的理解。原创 2022-07-04 21:01:25 · 760 阅读 · 11 评论 -
[C++](9)string类的使用:构造|赋值|遍历|容量|修改|字符串|迭代器
C++string类的设计较为复杂,这里讲解了较为常用的接口,迭代器的使用等等,这些是踏入C++门槛的重要基础内容。原创 2022-06-28 17:53:50 · 917 阅读 · 8 评论 -
[C++](8)模板的初步了解
为了支持各种类型的两个数据的交换,我们不得不写出多个函数。比如之前写的swap函数:它们构成函数重载,但是代码复用率低,一旦出现新的类型,就需要用户自己添加相应的函数。代码维护性低,一但发现错误,所有函数都要一起改。我们能否只写一个函数模板,需要什么类型的函数直接让编译器自己往里面填好了生成出来呢?答案是可以的,我们称这种方法叫泛型编程模板是泛型编程的基础,要用到的关键字:👆:也可以写成,当前的角度,用这两个关键字没有区别,是模板参数,是我们定义函数模板要用的类型名,可以自己随别取例1:模板的声明.原创 2022-06-26 16:35:31 · 434 阅读 · 5 评论 -
[C++](7)内存管理:new和delete
C语言的内存管理在C++中可以继续使用,但是有些地方就无能为力或者使用起来比较麻烦,因此C++有提出了自己的内存管理方式。+类型,开辟1个存放该类型对象的空间;后面加,内的数字表示开辟对象的个数;后面加,内初始化注意:和不能同时用,是不可以的。C++11支持在后面加,类似数组的初始化:出来的对象,释放要用的时候带有,也要带如果[]没有匹配,可能报错,可能不报错。对于内置类型,和除了用法不同,没有什么区别。它们的区别主要在自定义类型。==new一个自定义类型,不仅会开空间,还会调用这个类的构造函数。=原创 2022-06-24 21:25:38 · 423 阅读 · 1 评论 -
[C++基础](6)类和对象(下) :友元,内部类,初始化列表,静态成员
类和对象的收尾,包括了友元函数友元类,内部类,初始化列表,explicit关键字,static成员原创 2022-06-23 20:28:14 · 229 阅读 · 9 评论 -
[C++](5)类和对象练习,日期类的实现,运算符重载
重载日期计算的运算符,包括大量细节原创 2022-06-22 15:54:01 · 358 阅读 · 5 评论 -
[C++基础](4)类和对象(中) 类的默认成员函数|运算符重载|const成员
类的默认成员函数的作用、调用时机、显式写法,以及运算符重载和const修饰的成员函数的相关知识。原创 2022-06-21 17:23:13 · 194 阅读 · 0 评论 -
[C++基础](3)类和对象(上)|初步理解类和对象及其定义|this指针
初步理解类和对象、类和对象的定义、访问限定符、类的作用域、类的实例化、this指针原创 2022-06-17 23:21:14 · 190 阅读 · 0 评论 -
[C++基础](2) 引用|内联函数|auto|范围for|nullptr
C++语法初体验,以及对一些小细节的思考原创 2022-05-14 17:25:54 · 343 阅读 · 1 评论 -
[C++入门](1) 命名空间|缺省参数|函数重载|extern “C“
这篇主要学习命名空间、缺省参数、函数重载、和extern "C",细节满满,建议收藏 : )原创 2022-05-07 23:22:17 · 588 阅读 · 0 评论