![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
stl
文章平均质量分 91
胜利熊猫
大三在校生,希望通过分享给同样喜欢学习的朋友提供帮助,也希望通过分享为自己带来更大的提升。
展开
-
【二叉树从无到有】
我们一起打怪升级!文章内容汇总:树的介绍、二叉树的顺序存储--堆,以及链式存储,堆的应用--堆排序、top-k问题,以及二叉树链式存储相关的基本操作。原创 2022-11-28 21:56:12 · 515 阅读 · 11 评论 -
【线性存储结构总结】
详细讲解带头双向循环链表的基本操作,并且对线性表的相关特性进行总结。原创 2022-11-12 23:23:47 · 581 阅读 · 12 评论 -
【平衡二叉搜索树(AVL)-- 旋转】
打怪升级:第60天旋转是为了在保持平衡树性质的前提下降低树的高度,右子树高AVLTree,也就是我们所说的:自平衡二叉搜索树,AVL命名由来是两位发明者的名字的首字母,并无其他含义。AVL树是一棵搜索树;AVL树左右子树的高度差的绝对值不大于1;AVL树的左右子树也是AVL树。高度差可取0,1,-1。注:我们将左右子树的高度差称为平衡因子,简称为bf既然AVL树是一棵搜索树它就需要满足搜索树的特征:左子树不空,左子树上的值都小于根节点的值;右子树不空,右子树上的值都大于根节点的值;左右子树也都是二叉搜索树。原创 2023-05-01 20:22:55 · 1425 阅读 · 22 评论 -
【突发奇想 之 vector使用时性能测试】
1. 在**for循环**中如果使用到成员变量(如size()),作为判断,**十分推荐**将该值保存到一个**临时变量**,之后使用临时变量来代替它进行判断,否则调用多次进行函数调用会拖慢CPU运算速度;2. 声明容器变量是,是否初始化大小都可以,因为在任何地方都一样,当然如果需要给容器数据初始化,如果不是一定要使用某些值,不建议初始化为非0值;3. vector添加成员时,**十分推荐先开好空间**,之后直接**通过下标( v[i] )进行赋值**;如果借用一个临时变量,再进行push_back(原创 2023-05-25 17:25:09 · 902 阅读 · 27 评论 -
【红黑树 -- 理论与实现】
以上就是我们关于红黑树概念以及变色、旋转的全部内容,红黑树的旋转和avl的旋转都是一样的,不一样的一点就是红黑树旋转更新节点颜色,avl旋转更新节点的平衡因子。红黑树是近似平衡,avl则是绝对平衡,而为了达到绝对的平衡自然就需要进行更多的旋转操作,所以avl在插入过程中会消耗大量的时间,而因为是绝对平衡的,树的高度接近完全二叉树,查找的效率自然就会提高很多,不过由于二叉树查找效率为logN,在10亿个数据中进行查找也只需要查找30次,由于红黑树允许1倍左右的高度差,因此10亿个数据最多可能需要查找原创 2023-05-30 09:00:42 · 923 阅读 · 25 评论 -
【容器适配器的认识与模拟】
打怪升级:第78天适配器就是在容器的外面再嵌套一层容器,通过对普通容器的限制,达到我们想要的结果。stl中的容器适配器一共有三个stack、queue以及priority_queue,它们的操作很少,并且接口十分类似,今天我们已经见识了它们的函数接口以及接口的实现,如果你可以自行写出它们的模拟实现,那你对于容器适配器的理解就会迈入很高的层次。希望对有需要的朋友带来帮助。原创 2023-05-17 16:30:58 · 897 阅读 · 18 评论 -
【c++迭代器模拟实现】
STL 提供了六大组件,彼此组合套用协同工作。这六大组件分别是:vector的底层是数组,因此支持随机访问,vector的正向迭代器可以直接使用原生指针;vector的反向迭代器需要对原生指针进行封装,让它的行为可以和正向迭代器保持一致。反向迭代器vector的反向迭代器要和正向迭代器保持一致那就需要模拟正向迭代器的全部功能:++,–,比较大小,解引用,下标访问,以及如果数据元素是自定义类型我们还需要提供重载的箭头运算符: ->我们现在反向迭代器写好了,但是好像少了些什么:const迭代器好原创 2023-05-05 22:51:30 · 954 阅读 · 22 评论 -
【详细了解c++模板】
打怪升级:第40天x = y;y = tmp;x = y;y = tmp;return 0;因此,我们祖师爷就在想,能不能我们只自己写一个“模具”出来,之后具体需要什么类型由编译器来判断并且复刻出可以使用的函数?就像我们的印刷机 – 有一个原样,想要得到它的复制品就轻而易举,这样不仅帮助程序员们节省了对类似代码的拷贝与维护,并且还可以少掉许多头发。模板函数不允许自动类型转换,但普通函数可以进行自动类型转换,例如上面的add模板,两个参数类型需要保持相同;原创 2023-03-21 22:36:26 · 83 阅读 · 9 评论 -
【stl容器--实践操作】
string、vector、deque、stack、queue、list、pair、set、map。8+1个str容器的使用、及算法调用。原创 2023-01-11 15:22:56 · 627 阅读 · 35 评论 -
【stl -- 内建函数对象】
介绍了仿函数的概念,以及stl中的三组内建函数对象:算数仿函数、关系仿函数、逻辑仿函数;希望对朋友你有所帮助。原创 2023-01-31 18:24:07 · 438 阅读 · 37 评论 -
【stl -- 常用算法】
str常用算法讲解及实践操作:for_each、sort、random_shuffle、merge、reverse、copy、replace、swap、accumulate、fill以及集合算法等等,足以满足希望快速上手stl的你。原创 2023-01-26 22:49:35 · 936 阅读 · 34 评论 -
【vector的各个begin迭代器详解】
对c++str中vector容器的begin、rbegin、cbegin、crbegin以及对于end迭代器的用法介绍与描述。原创 2022-12-29 20:02:29 · 1774 阅读 · 17 评论