
STL
文章平均质量分 96
记录我学习到的STL容器已经数据结构
无双@
Get ur shit together man
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手搓《unordered_map && unordered_set》
上一文中,我们讲解了unordered_map和unordered_set的使用场景,并且我们又详细手搓了哈希表,我们介绍了两种方式,一种是开放定址法还有就是链地址法,其中链地址法我们需要重点学习和使用,那针对使用本文就来运用哈希表来实现我们的unordered_map和unordered_set的封装。!在这里要提前说明,本文实现的逻辑和之前手搓的map和set一致,在这里我就只对整体思路进行一个概况,以及迭代器的封装进行说明!!!!原创 2024-11-24 17:15:00 · 560 阅读 · 0 评论 -
面试官问我 —— 《哈希表》?
一文带你全方位理解哈希表原创 2024-11-21 16:05:56 · 1151 阅读 · 0 评论 -
手搓STL库中 ——《map && set》
我们从一开始接触map和set时就惊叹于这两个容器的强大之处,set可以高效的为我们进行排序去重,而map就像一个字典一样,不仅可以为我们实现去重排序,也可以帮助我们进行一一对应的查找。接下来我们又学习了AVL树和红黑树,我们也算是了解到了map和set的底层是基于红黑树实现的。因此现在我们已经具备对map和set进行自主实现了!在你阅读本章之前,你需要熟悉红黑树的特性,以及我们之前对list容器进行的自主实现。原创 2024-11-20 17:07:03 · 881 阅读 · 0 评论 -
一文理解吸收《红黑树》的精华
在前面的学习中,我们是先自己实现了一个平衡二叉树,然后我们就介绍了stl两个容器map和set,但是我们并没有立即实现,这是因为他们的底层是红黑树我们当时还没有了解到。本章承接上文的AVL树,我们将开启学习一种特殊且流传广泛的数据结构————红黑树。学完本文,我们就可以自主模拟实现map和set!!!以上就是红黑树的插入过程,在这里我只是对插入进行了讲解,而至于删除则难度较高,在这里我也不做赘述了,感兴趣的同学可以下来自己学习学习。其实我们在学习完红黑树后,会发现其实这是要比AVL树简单好实现的!原创 2024-11-14 15:00:36 · 713 阅读 · 0 评论 -
剖析AVL树的核心思路——C++
对于搜索来说,我们在数据结构部分中学习过二分查找,而在算法题目中也学习过关于二分的思路。而在之前的学习中,我们又接触到了“二叉搜索树”这一概念,但是我们也提到过关于二叉搜索树之中存在的缺点。接下来我们介绍学习了STL中的map和set这两个容器,我们说过其底层是一颗类似二叉搜索树的数据结构,但是当时的我们并没有机会去自主实现,所以本章以及下一章会围绕着两棵树来进行展开讲解,分别是《AVL树》和《红黑树》。原创 2024-11-11 11:39:46 · 800 阅读 · 0 评论 -
初学C++高效容器 —— map和set
很久没有继续写C++了,主要还是之前学习Linux学习学上瘾了,搞了差不多有4个月的Linux博客,是时候回来学会C++了。但其实我们在学习C++后期会使用到操作系统的线程这一概念,包括后面所需要做的项目,都需要我们有C++和操作系统的基础,两个部分都已经接近了尾声,后续我们就会同步进行学习,相辅相成。本章的内容可以说是两个神器,未来我们在写算法题的时候运用我们今天所学习的内容,将会特别爽!前一章的C++学习,我们是来讨论了下二叉搜索树的Value和K-Value模型,不知道大家还有没有印象?原创 2024-10-23 10:27:56 · 672 阅读 · 0 评论 -
手撕《二叉搜索树》
{}K _key;public:private:本章存在许许多多的细节问题,最直观的例子就是erase的实现,下来可以好好看看,下面我们将正式进入map和set的学习。原创 2024-05-22 09:29:43 · 666 阅读 · 0 评论 -
初始《stack》《queue》及手搓模拟《stack》《queue》
在前面的学习中我们已经初步进入了STL的大门,尤其在list这一章中,我们对于迭代器的实现甚至说对于类和对象的封装有了更深刻的认识,接下来我们将要继续对STL库中的容器进行学习,同时我们也会对以前我们学过的知识进行巩固!1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。原创 2024-05-04 17:38:20 · 814 阅读 · 0 评论 -
初识《list》及手搓模拟《list》
现阶段我们已经逐渐熟悉了各个STL库中的容器,对于他们的各个接口都大差不差,在我们学习完vector之后我们就可以陆陆续续接触一些算法题。我们的《好题分析》这一专栏也会不断的进行更新!下面我们先来熟悉以下list这个容器。list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向带头链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。原创 2024-04-20 00:37:44 · 966 阅读 · 0 评论 -
初识《vector》及模拟实现《vector》
在上一篇blog中,我们认识及学习了string这一标准模版库中的容器,我们了解到string的本质其实为一个字符串,而对于我们今天所学习的vector容器,本质上我们可以理解为一个顺序表,但是这个顺序表里的各个“节点”我们可以存放不只是内置类型的数据,而且还可以存放自定义类型。1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。原创 2024-04-07 16:11:40 · 1028 阅读 · 0 评论 -
初识《string》及手搓模拟实现《string》
在之前的学习中,我们初步了解到了模板的概念,而接下来又对于C++的标准模板库(STL)也有了基本的概念。对于C++的武器,我们不得不进行学习,日后有了这些STL武器的帮助,对于大部分题目我们都能游刃有余。以上就是string的部分内容,在这里我只对于重要的部分进行讲解,string这个库有许多自带的函数,下来可以自己动手尝试尝试实现。原创 2024-03-31 17:39:12 · 1193 阅读 · 0 评论 -
《模板入门》以及初始STL
在前面的学习中,我们逐渐意识到我们目前学习到的C++知识,可以比传统得C语言更加简洁高效,接下来我们将学习更高效的STL(标准模板库)的各个内容。首先我们需要引入一个全新的该概念————模板STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原创 2024-03-24 13:06:04 · 926 阅读 · 0 评论