C++
文章平均质量分 92
Shingmc3
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
list
对begin,end执行++操作,迭代器后移;对rbegin,rend执行++操作,迭代器前移(eg :++begin())原创 2025-03-01 15:17:27 · 1055 阅读 · 0 评论 -
stack和queue
queue文档emptysizefront返回队头元素的引用back返回队尾元素的引用push_back在队列尾部入队列pop_front在队列头部出队列priority_queue 文档优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)标准容器类vector和deque满足这些需求。默认情况下,原创 2025-03-13 12:15:31 · 681 阅读 · 0 评论 -
【C++】多态
多态是一个继承关系的下的类对象,去调用同一函数,产生了不同的行为。原创 2025-04-19 16:01:38 · 1389 阅读 · 0 评论 -
【C++】继承
Person是基类,也称作父类。Student是派生类,也称作子类。原创 2025-04-07 22:45:34 · 714 阅读 · 0 评论 -
【C++】智能指针
当有抛异常场景时,又可能导致后面的delete没有得到执行,所以就内存泄漏了,所以需要new以后捕获异常,捕获到异常后delete内存,再把异常抛出,但是因为new本身也可能抛异常,连续的两个new场景也都可能会抛异常,处理起来很麻烦烦。智能指针放到这样的场景里面就让问题简单多了。原创 2025-09-25 20:45:50 · 1021 阅读 · 0 评论 -
【C++】C++11(二)
..原创 2025-09-20 19:44:45 · 993 阅读 · 0 评论 -
【C++】C++11(一)
C++11以后,分别重载左值引用、const左值引用、右值引用作为形参的f函数,那么实参会分别匹配。是一个表示数据的表达式(如变量名或解引用的指针),一般是有持久状态,存储在内存中,我 们。等,右值可以出现在赋值符号的右边,但是不能出现出现在赋值符号的左边,右值。,左值可以出现赋值符号的左边,也可以出现在赋值符号右边。移动构造本质是将ret对象移动str的资源,再将str置空。进行拷贝,将对象拷贝到容器空间中的对象。,右值对象的资源到容器空间的对象上。也是一个表示数据的表达式,要么是。原创 2025-09-16 17:31:25 · 699 阅读 · 0 评论 -
哈希表封装myunordered_map和myunordered_set
unordered_map要支持[]主要需要修改insert返回值支持,修改HashTable中的insert返回值为。_ables,则可以把Iterator实现为哈希表的。类模板成为友元函数需要加上模板参数。此处实现迭代器需要访问哈希表中。原创 2025-09-11 21:15:52 · 608 阅读 · 0 评论 -
【C++】哈希表实现
哈希(hash)又称散列,是⼀种组织数据的方式。从译名来看,有散乱排列的意思。本质就是通过哈希 函数把关键字Key跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进行快速查找。原创 2025-09-08 22:22:04 · 962 阅读 · 0 评论 -
【C++】封装红黑树实现myset&mymap
map要支持[ ]主要需要修改insert返回值支持,修改RBtree中的insert返回值为。原创 2025-09-04 20:42:07 · 575 阅读 · 0 评论 -
【C++】红黑树
红黑树是一棵二叉搜索树,它的每个结点增加一个存储位来表示结点的颜色,可以是红色或者黑色通过对任何一条从根到叶子结点的路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其它路径长出两倍,因而是接近平衡的。原创 2025-08-30 15:47:30 · 721 阅读 · 0 评论 -
【C++】异常
异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理, 异常使得我们能够将问题的检测与解决问题的过程分开,程序的一部分负责检测问题的出现,然后 解决问题的任务传递给程序的另一部分,检测环节无须知道问题的处理模块的所有细节。原创 2025-08-11 22:19:10 · 735 阅读 · 0 评论 -
【C++】AVL树
【代码】【C++】AVL树。原创 2025-08-09 00:19:29 · 573 阅读 · 0 评论 -
【C++】set和map使用
T就是set底层关键字的类型set默认要求T支持小于比较,如果不支持或者想按自己的需求可以自行实现仿函数传给第二个模 版参数set底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给第三个参 数一般情况下,都不需要传后两个模版参数set底层是用红黑树实现,增删查效率是O(logN) ,迭代器遍历是走的搜索树的中序,所以是有序的T是map底层value的类型。原创 2025-08-02 22:48:50 · 1003 阅读 · 0 评论 -
【C++】二叉搜索数
二叉搜索树又称二叉排序树,它或者是⼀棵空树,或者是具有以下性质的二叉树。原创 2025-07-25 23:42:58 · 983 阅读 · 0 评论 -
vector
如果pos刚好是最后一个元素,删完之后pos刚好是end 的位置,而end位置是没有元素的,那么pos就失效了。上方代码实现reserve扩容时没有用memcpy浅拷贝,而是使用赋值重载深拷贝,使指向新地址。,比如:resize、reserve、insert、 assign、push_back等。Linux下,g++编译器对迭代器失效的检测并不是非常严格,处理也没有vs下极端。erase删除pos位置元素后,pos位置之后的元素会往前搬移,解决方法:给 i 重新赋值即可。,造成的后果是程序崩溃。原创 2024-11-26 22:41:17 · 996 阅读 · 0 评论 -
string类
string类的使用和实现原创 2024-11-08 00:10:01 · 825 阅读 · 0 评论 -
模板初阶+STL简介
class 类模板名// 类内成员定义public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误_size++;原创 2024-10-14 21:54:26 · 295 阅读 · 0 评论 -
C/C++内存管理
malloc free与new delete最大区别是:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会class Apublic:: _a(a)~A()private:int _a;free(p2);return 0;调用operator new函数申请空间在申请的空间上执行构造函数,完成对象的构造在空间上执行析构函数,完成对象中资源的清理工作。原创 2024-10-13 22:40:24 · 954 阅读 · 0 评论 -
【C++初阶】类和对象(三)
初始化列表总结:2.类型转换C++支持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数 构造函数前面加explicit就不再支持隐式类型转换 类类型的对象之间也可以隐式转换,需要相应的构造函数支持3. static成员用static修饰的成员变量,称之为静态成员变量,静态成员变量一定要在类外进行初始化。静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区用static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指原创 2024-10-10 22:39:09 · 962 阅读 · 0 评论 -
【C++初阶】类和对象(二)
就是称为默认成员函数。⼀个类,不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,稍微了解⼀下即可。原创 2024-10-02 17:46:17 · 1116 阅读 · 0 评论 -
日期类的实现
【代码】日期类的实现。原创 2024-09-29 21:00:37 · 214 阅读 · 0 评论 -
【C++初阶】入门基础
定义命名空间,需要使用到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace smc//命名空间名字通常可以使用自己的名字,形目名称等(此处均使用本人名字)int a = 1;// 命名空间中可以定义变量/函数/类型int data;namespace本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量。原创 2024-09-17 18:02:11 · 1005 阅读 · 0 评论 -
【C++初阶】类和对象(一)
struct默认为public。原创 2024-09-20 17:26:19 · 888 阅读 · 0 评论
分享