
STL学习
文章平均质量分 95
STL学习经验积累
梦想患者
奋斗加油
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Map、Set的底层实现——红黑树
复习二叉树相关知识点,结合之前实现的一个Map源码,在此做一个总结。分析红黑树,扩展到map、set知识点上原创 2025-04-03 14:10:37 · 1041 阅读 · 1 评论 -
浅谈智能指针工作原理(std::shared_ptr、std::unique_ptr、std::weak_ptr、std::auto_ptr)
智能指针,老有人会问关于对它的认识。为了很好的回答这个问题。对智能指针 std::shared_ptr、std::unique_ptr、std::weak_ptr和 std::auto_ptr进行分析。在此做一个总结,对于智能指针的分析告一段落。`智能指针总是八股文的一部分,与其记住它的特性,不如知道它的工作逻辑,推导出所以然。记性总是很差,为何不去理解它的原理,感受它的趣味。原创 2024-10-25 17:00:19 · 990 阅读 · 0 评论 -
STL —heap算法源码刨析 make_heap、push_heap、pop_heap、sort_heap操作分析
heap的内部是一个完全二叉树,将极值存放在根节点。这个里的极值可分为最大值、最小值。根据极值意义的不同可分为大堆和小堆。为了方便解释,以下的讲解内容都以大堆(max-heap)的例子讲解。大顶堆:根节点(堆顶元素)是所有节点中的最大值(父节点都大于左右子节点)。小顶堆:小顶堆中的根节点是所有节点中的最小值(父节点都小于左右子节点)。如上图所示,A即为这个列表中的极值。在查找极值时极为方便。同时因为是一个完全二叉树,所以除了叶子节点外,其他的节点都存在。原创 2024-09-10 18:22:36 · 1283 阅读 · 0 评论 -
STL算法详细解剖——单纯数据处理函数
总结STL中,单纯的数据处理算法。了解算法背后的秘密,学习仿函数与模板函数组合的奥妙。减少日常开发的重复工作。提高开发效率。原创 2024-09-05 11:14:32 · 571 阅读 · 0 评论 -
简单模拟vector的特性,同时浅谈erase操作后,迭代器失效的原因
在构造函数中,start和finish指针,指向开辟空间的首地址,end_of_storage指向最后的地址。push_back()函数,在传入值时,所占空间已满,开辟之前二倍的空间,并将之前的值拷贝到刚开辟的空间中,同时,释放原来的空间,finish指针向后移动。成员函数,此函数,在STLvector中,通过vs2015测试时,通过迭代器删除一个元素时,不管它“*”取值,还是++操作,都会崩溃。(至此,我在模拟时,也进行了位置的偏移),从这里可以看到,并不是因为野指针的缘故。............原创 2022-07-21 17:25:22 · 411 阅读 · 0 评论