
C++
文章平均质量分 79
快乐老干妈
2024年重庆市“计算机网络系统管理大赛”金奖。
欢迎访问我的个人博客:https://www.happyladysauce.cn。
展开
-
priority_queue 优先级队列
所以我们首先比较左右子节点值的大小,比较得出是左子树的值大还是右子树的值大,然后再使用较大的子节点值与父亲节点值进行比较,如果子节点值小于父亲节点值,则不进行任何操作这已经满足堆的逻辑,反之进行值替换,接着将子节点重新赋值为父亲节点,再重新计算父亲节点进入下一轮值比较,直至达到根节点或者子节点值小于父亲节点值时,停止排序。向下调整思想将数据分为多个子树,每个子树只需向下调整好自己的子树,保证自己一定是一个大根堆,从后往前依次调整(子树 1 -> 子树 2 -> 子树 3),自然地最终我们的堆就排好序了。原创 2025-04-16 18:43:40 · 682 阅读 · 0 评论 -
STL-deque双端队列
deque 结合了 vector 和 list 的部分特性,支持随机访问(通过[]运算符),但中间部分的插入和删除效率较低。deque 的优势:多段连续内存deque由多个固定大小的内存块(数据段)组成,这些数据段通过一个中控指针数组管理。高效的头尾操作:支持在头部和尾部快速插入和删除元素,时间复杂度为O(1)。随机访问支持:通过[]运算符可以随机访问元素,尽管效率不如vector,但优于list。内存连续性:相比listdeque的内存空间相对更连续,对CPU缓存更友好。原创 2025-04-09 14:55:28 · 638 阅读 · 0 评论 -
STL-stack栈和queue队列
stack 和 queue 都是 STL 中的容器适配器,它们通过封装其他容器类来实现特定的数据结构功能,而不是从底层类型一步步封装而来。它们的默认底层容器都是 deque,即如果没有指定模板参数中的底层容器类型,则默认使用 deque。原创 2025-04-09 14:54:50 · 979 阅读 · 0 评论 -
C++语法学习之路
任何场景下都可以使用引用作为函数参数,但是引用作为返回值只能用在函数栈帧空间回收后返回对象还存在的情况下使用。合理使用引用可以让我们的代码效率大大提升,且可读性良好。A b = 1;//隐式类型转换,整形转换为自定义类型return 0;A b = 1;这一条命令中发生了隐式类型转换,首先使用1作为参数调用A类的构造函数,在使用拷贝构造拷贝给实例化类b。原创 2025-04-09 14:50:44 · 998 阅读 · 0 评论 -
C语言Linux进度条模拟
在Linux字符界面中,使用yum、apt下载东西时会有一个图形化的进度条,可以告诉我们任务的执行进度。我们也可以通过C语言实现一个类似的进度条,并且可以做得更加美观。以后我们自己写的程序需要显示进度时就可以去调用我们自己实现的进度条。原创 2024-06-01 19:44:02 · 762 阅读 · 0 评论 -
C++模板
C++新加入了一个关键字 "template",它能实现 "模板" 的功能。我们之前写函数重载需要写多个命名但参数不同的函数,写起来非常的繁琐。使用 "template" 可以实现写一个模板,然后按照这个模板生成对应的函数,把繁琐的CV(复制粘贴)步骤取消掉了。原创 2024-03-28 14:05:24 · 199 阅读 · 0 评论 -
C++构造函数和静态成员、友元
在创建对象时,编译器会调用构造函数对对象进行初始化工作。对象的初始化有两种方式,一种是构造函数体赋值另一个是初始化列表。原创 2024-03-21 12:23:48 · 371 阅读 · 0 评论 -
C++内存管理
程序中总是需要存储数据的。在语言的角度来讲,内存主要分为四个区域:静态区(数据段)、常量区(代码段)、栈、堆。原创 2024-03-27 16:27:15 · 646 阅读 · 0 评论 -
C++经典日期类实现
学完C++类和对象以及四个默认成员函数,就可以来尝试自己实现一下日期类。完成日期类的各种功能,并加强自己的代码能力。原创 2024-03-03 21:45:13 · 386 阅读 · 1 评论 -
C++类和对象以及默认成员函数
C++和C语言之间最大的区别就是C++出现了类和对象。C语言是面向过程的,就好比你想吃饭那么你只能自己亲手做饭吃,切菜,下锅,炒菜,出锅这些事都需要自己去完成。但是在C++中是面向对象的,就好比你去店里吃饭,你只管下单,然后复杂的做法过程你全程不管交给厨师去完成,你只管厨师把饭做好端给你吃。这其中就C++就好比把做法的过程封装了起来变成厨师,你想吃饭的时候就可以让厨师去做,而不用你自己去做饭。原创 2024-02-28 18:34:15 · 513 阅读 · 0 评论 -
C++函数重载与编译链接
C++支持函数重载,C语言不支持函数重载,它们的区别在于编译器对函数编译的实现不一样。原创 2024-02-20 10:11:32 · 580 阅读 · 0 评论 -
C++引用的使用场景
任何场景下都可以使用引用作为函数参数,但是引用作为返回值只能用在函数栈帧空间回收后返回对象还存在的情况下使用。合理使用引用可以让我们的代码效率大大提升,且可读性良好。原创 2024-02-20 18:16:50 · 545 阅读 · 0 评论 -
C++入门
C++是在C的基础之上,容纳进了面向对象编程思想,并增加了许多有用的库,以及编程范式等。前期的C++主要是在补充C语言的不足,以及对C设计不合理的地方进行优化。原创 2024-02-06 19:52:42 · 396 阅读 · 1 评论