![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 95
C_player_001
这个作者很懒,什么都没留下…
展开
-
C++ 特殊类设计以及单例模式
C++一些特殊类的设计原创 2024-08-16 18:10:20 · 726 阅读 · 0 评论 -
C++ 智能指针
C++智能指针原创 2024-08-15 18:17:03 · 678 阅读 · 0 评论 -
C++异常
C++异常及其优缺点原创 2024-08-14 16:20:10 · 560 阅读 · 0 评论 -
C++11新特性
C++11的部分新特性原创 2024-08-13 14:44:55 · 979 阅读 · 0 评论 -
C++ 哈希系列容器 + 位图 + 布隆过滤器
哈希其实本质上就是一种映射,映射的意思就是把你的key值跟对应数据的存储的位置建立一个关联关系,那么只要知道key值,就能根据固定的算法求出该数据所在的位置。我们以前玩过的映射比如说 计数排序或者计数的数组,这些都是简单的哈希映射,他们适合数据范围小,分布集中的数据,但是如果数据十分离散,这种简易的映射就不能是满足需求了。我们上面所说的简易的哈希映射,我们使用的是直接定址法,就是。原创 2024-07-31 19:59:16 · 234 阅读 · 0 评论 -
模拟实现AVL树以及红黑树
在模拟实现AVL树和红黑树之前,我们首先介绍一下set和map这两个容器,因为我们实现AVL树和红黑树就是为了set和map做准备的,但是我们只是稍微了解一下常用的接口,模拟实现的时候则不会实现的跟库一样复杂。setset是一棵平衡二叉搜索树,他不会出现像我们之前说的二叉搜索树的左右极其不平衡的问题,也就是单支树,他是平衡或者接近平衡的一棵二叉搜索树。那么他的搜索效率就是logN,因为它的高度一般来说就是logN左右。原创 2024-07-20 20:53:37 · 1024 阅读 · 0 评论 -
二叉搜索树
本文讲解了搜索二叉树的基本结构及模拟实现,同时讲解了一些二叉树相关的题目,为下一章节的AVL树和红黑树打基础原创 2024-07-15 21:15:06 · 602 阅读 · 0 评论 -
C++多态
C++关于多态的知识原创 2024-07-13 15:40:14 · 870 阅读 · 0 评论 -
模板(补充)+ 继承
C++继承的详解原创 2024-07-10 16:46:26 · 965 阅读 · 0 评论 -
C++ 栈-队列-优先级队列
1原创 2024-07-05 18:56:13 · 1080 阅读 · 0 评论 -
C++ list的模拟实现
本文主要讲解了list的模拟实现,以及简单的迭代器类的实现原创 2024-06-28 21:59:56 · 880 阅读 · 1 评论 -
C++ vector 模拟实现
C++ vector模拟实现原创 2024-05-29 13:42:01 · 994 阅读 · 0 评论 -
string 模拟实现
string是用来存储字符类型数据的容器,由于string比STL出现的早,所以在C++官方网string并不在container分类中,但是我们也可以称它为容器。string有两个类模板,我们主要学习的是 basic_string这个类模板实例化出来的 string (basic_string<char>的重命名)类。我们在C语言中学的字符都是以ASCII码的形式来表示和存储的,但是ASCII码只能表示128个字符。原创 2024-05-03 20:02:22 · 18 阅读 · 0 评论 -
C++模板初阶
而在main.o中,由于没有函数的定义,虽然它调用了模板函数,但是在他的文件里,只有模板函数的声明,没有定义,所以编译器在编译的时候,虽然能够推演出具体的类型,但是他只能替换声明中的T,所以在main.o中,相当于只有函数的声明,而没有实现,所以他的符号表中这个函数关联的是一个无效的地址。在模板上是不能写明具体的类型的,如果写明具体的类型,这就不是模板而是具体的函数了,要做到与类型无关,就需要用一个虚拟类型,而class 和typename 就是虚拟的类型,他么们不是具体的类型。这就是我们下面的类模板。原创 2024-04-28 22:30:34 · 822 阅读 · 0 评论 -
C++ 内存管理
目录1.内存区域划分2.C语言内存管理方式3.C++的内存管理方式4.operator new 和operator new[ ]5.operator delete 和operator delete[ ] 6.定位new表达式7.内存泄漏在C语言中,我们了解了内存是分区域使用的,栈区存储局部变量,动态开辟内存在堆区,静态和全局变量在静态区,而常量则存储在常量区代码段中的可执行代码是什么呢?我们写了这么多的代码,首先我们要知道我们写的程序平常都是存在文件中的,出现经过编译连接之后形成一个可执行程序,他也是存在磁原创 2024-04-27 20:50:28 · 845 阅读 · 0 评论 -
类与对象(四)
首先要理解的一点就是,类中的所有成员都会走初始化列表,不是显式就是隐式,所有成员的变量的初始化都是在初始化列表中完成的。这很容易理解,就拿我们上面的日期类来说,我们并没有写初始化列表,但是在进入构造函数体之前所有成员变量都已经初始化了。对于自定义类型的成员变量,我们如果不显式写在初始化列表中对其初始化的话,就会调用它的默认构造进行初始化。原创 2024-04-26 22:19:11 · 1026 阅读 · 2 评论 -
类与对象(三) 拷贝构造与赋值运算符重载
那么对于我们的Date类,编译器自动生成的拷贝构造就能用了,那么我在什么情况下需要我们自己去写拷贝构造呢?我们前面的 Stack 和MyQueue这两个类对于Stack类,如果我们直接用编译器自动生成的拷贝构造会不会出现问题呢?原创 2024-04-24 22:45:21 · 1123 阅读 · 0 评论 -
类与对象(二) 构造函数与析构函数
为什么编译器对内置类型不做处理呢?因为编译器也不清楚这些变量是用来做什么的,不知道要给他们什么样的初始值才合适,不管怎么样总有情况不会满意,所以编译器也不敢处理内置类型。所以说,自动生成的默认构造函数还是会做事情的,只是对内置类型不处理。对于自定义类型,自动生成的构造函数会去调用该类型的构造函数,这个怎么理解呢?我们可以拿之前的用栈实现队列来举例,我们的队列使用两个栈来完成的。原创 2024-04-23 20:21:56 · 1266 阅读 · 0 评论 -
C++类与对象(一)
虽然C++中兼容C语言的结构体,但是对于大多数人来说,对于类的定义我们还是更喜欢用class来定义,class是C++中用来定义类的关键字,//类体:类成员函数 + 类成员变量在类的定义里面,没有规定成员函数和成员变量的位置,我们可以按任意顺序定义变量和函数,因为类是一个整体,编译器在搜索类的时候是不分上下前后顺序的,会直接搜索整个类。但是我们更建议把函数定义在一起,变量定义在一起,这样我们去找成员变量的时候更加方便。assert(_a);_size = 0;_size++;原创 2024-04-22 22:27:09 · 862 阅读 · 0 评论 -
C++基础入门
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不适合,为了解决软件危机,20世纪80年代,计算机界提出了OOP(object oriented programming):面向对象思想,支持面向对象的程序设计语言应运而生1982年,Bajarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表示该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言产生的,原创 2024-04-21 20:50:09 · 1074 阅读 · 0 评论