数据结构 + stl源码剖析
文章平均质量分 88
惊叹于数据结构的魅力,前任的思想令人着迷,stl源码剖析中窥探出c++前沿工作者对于模版的代码的控制能力
午间特困猿
喜欢C++,喜欢分享学到的内容,如果我的文章能够给你带来帮助,那真的太酷了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MySQL基础01】:如何创建删除修改表和数据库
MySQL是一个网络服务, 默认是3306mysqld是服务端, mysql是客户端mysql是一套给我们提供数据存取服务的网络程序数据库在磁盘(MySQL)或者内存(Redis)中进行存储的特定结构组织的数据在磁盘上数据存储的解决方案。原创 2025-07-29 20:48:30 · 315 阅读 · 0 评论 -
高阶数据结构 -- 图(万字总结, 最全面)
通过边,节点构成的数据结构,我们称作图,树是一种特殊的图,但是树和图又不太一样,树更多的关注的是树的节点,比如。原创 2025-07-28 14:01:20 · 1045 阅读 · 0 评论 -
IO复用(多路转接)
select poll epoll的优缺点select : select适合简单的应用场景(当我们需要管理的文件描述符比较少的时候), select是一个简单的不错的选择, 但是select频繁的将数据从内核到用户之间频繁拷贝, 当涉及到的描述符多了之后, 就会显著降低效率poll : poll在select的基础之上进行了改进, 只能说在设计上更加的方便的, 但是轮询和用户内核之间的拷贝问题没有得到根本的解决。原创 2025-07-22 21:56:04 · 629 阅读 · 0 评论 -
【算法】:KMP算法 (包让你看明白)
对于模式串P,next[i]表示子串P[0…i-1]的最长公共前后缀长度。KMP算法通过预处理模式串构建next数组,利用已匹配的信息避免不必要的回溯,将字符串匹配的时间复杂度从O(n*m)优化到O(n+m)。理解KMP算法的关键在于理解最长公共前后缀的概念和next数组的构建过程。虽然KMP算法不是最简单的字符串匹配算法,但它在很多实际应用中提供了优异的性能。。原创 2025-07-02 20:09:11 · 886 阅读 · 0 评论 -
[C++11]:万字总结,过来人深刻的帮助理解智能指针
本文章可以帮助你从零开始或者更加深刻的理解C++11中的智能指针原创 2025-06-13 20:37:26 · 1240 阅读 · 0 评论 -
[C++11] : 谈谈包装器和lambda表达式,仿函数,bind的坑
lamda, 包装器,bind的坑,C++11新特性原创 2025-06-12 21:47:45 · 1196 阅读 · 0 评论 -
【数据结构】:一文帮你完全弄懂哈希(hash) , 并且帮你手搓std::unordered_map
文章谈论了哈希的思想以及如何实现哈希表,其实哈希是一种很简单的数据结构,我们只不过站在了巨人的肩膀上。原创 2025-06-12 18:00:00 · 1383 阅读 · 0 评论 -
c++之string
导语:string 作为c++中我们第一次接触的由c++提供的库的类,可以这么说,当完全理解了string的逻辑后,对于后面其他数据结构的理解也会变得很简单。原创 2024-05-11 18:06:29 · 1797 阅读 · 1 评论 -
c++数据结构之搜索二叉树(不一定最好,一定最懂你)
由于我的博客是一系列的,后续我还会陈述搜索二叉树的问题,并且会提出AVL树,红黑树等更高阶的数据结构,当然,他们都属于搜索二叉树,还有stl标准库中的map和set的运用,由于map和set的底层是红黑树,因此,预知后续如何,请看后续。原创 2024-07-27 19:48:36 · 576 阅读 · 0 评论 -
分享一下我写二叉树的相关思路
递归其实就是中学阶段大家学过的数列,作为一个接触过数学竞赛的学生,我想说,计算机中的递归就是数列的暴力实现,什么是数列,数列就是一串满足某些相同关系的数的集合,即通过某些项,我可以求后面的项,以此类推,数列的无穷项理论都是可行的。其实,二叉树如果你想通过循环来进行,很多时候都是很复杂并且可能不能实现的,那么,一般情况下,二叉树的相关问题(至少目前我所讲的简单的二叉树),都可以用递归简单的完成。这是一个标准的斐波那契数列,我们首先有基本项,然后通过已知的方式,就可以求的第n项,原创 2024-03-19 10:33:29 · 624 阅读 · 1 评论 -
讨论各种排序(sort)函数,全网最全的排序函数总结
今天在这里谈论一些关于一些常见的排序的算法,这里我们由浅入深来谈论有趣的排序的相关算法。原创 2024-03-25 20:32:40 · 2095 阅读 · 0 评论 -
平衡二叉树之AVL树(一篇文章帮助你完全弄懂AVL树)
二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家和E.M.Landis在1962年当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整,即可降低树的高度,从而减少平均搜索长度。原创 2024-09-08 14:50:44 · 837 阅读 · 0 评论 -
c++之红黑树(一篇文章搞定红黑树中的增删操作)(这是我看多很多文章总结的红黑树最简单的操作)
每个节点要么是红色,要么是黑色。这是红黑树的基本属性之一。根节点是黑色。这意味着在所有情况下,根节点的颜色都是黑色。每个叶子节点(NIL)是黑色。这里的叶子节点指的是空节点或称为NIL节点。从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。这保证了树的平衡性。没有两个相邻的红色节点。即任何红色节点的子节点必须是黑色。这些性质共同确保了红黑树在插入、删除等操作时能够保持相对平衡的状态,从而提供高效的查找性能。红黑树的时间复杂度为O(log n),使其成为一种非常实用的数据结构。原创 2024-09-11 19:56:55 · 777 阅读 · 0 评论
分享