C++ STL unordered_set容器入门 本节我们将进入unordered_set容器的学习。对于unordered_set容器,我们至少能够知道它的两点规则,即:1. 不会像unordered_map容器一样进行自动排序,反而由于哈希表的缘故,元素根据键被哈希函数映射到桶数组里,显得“杂乱无序”;2. 存储的元素已不再是键值对,而是“值”且不允许存在重复值,我们可以认为它键值一体,还有就是其值不能通过迭代器或成员函数修改。接下来我们将通 STL无序关联式容器 2025年10月15日 0 点赞 0 评论 216 浏览
C++ STL list容器如何删除元素? 前面我们学会《如何为STL库中list添加元素?》,本节将为读者详细介绍如何删除list容器内的元素。当然,读者也可自行跳转《初识STL库中的list容器》查询list成员函数表,查找“删除”、“移除”等关键字查看具体函数,加深记忆。如今学到这里,看到删除字样,我们第一反应就要是这个pop_front()、pop_back()头删尾删,还有erase()按位置迭代器删,clear()一键全清。不同 STL序列式容器 2025年10月06日 5 点赞 0 评论 329 浏览
C++ STL容器简介 STL容器是C++标准模板库中用于存储和管理数据集合的通用数据结构模板类。可以把它们想象成各种规格的“智能储物箱”,每个箱子都有自己独特的存放和取用规则。这些容器大大简化了程序员的数据管理工作量——不需要从零开始实现链表、栈、队列这些基础数据结构,而是直接使用现成的模板类。比如vector就像可以自动扩容的动态数组,list如同可以高效插入删除的双向链表,map则提供了键值对的快速查找能力。所有S STL序列式容器 2025年10月01日 0 点赞 0 评论 277 浏览
C++ STL迭代器适配器简介 本节我们将进入迭代器适配器的学习。迭代器适配器,顾名思义,就是自定义迭代器,在原有迭代器的基础上进行接口的约束或升级。如果读者还不知道什么是适配器的话,可自行跳转《C++ STL容器适配器简介》深入学习。对于SLT库中的所有容器,我们总共有5种迭代器,分别是前向迭代器、双向迭代器、随机访问迭代器、输入迭代器和输出迭代器。我们通常使用迭代器来进行容器的遍历和快速访问首尾元素,这里演示一下通过迭代器遍 STL迭代器适配器 2025年10月18日 0 点赞 0 评论 194 浏览
C++ STL set容器入门 对于SLT库中的关联式容器,我们第一个学到的容器就是map,它属于有序关联式容器且只允许唯一键值存在;当允许重复键值存在时,我们就学习了multimap。今天我们开始学习set容器,set可以被视为是特殊的map,它要求键必须等于值。所以,插入时只需要放入一个元素即可,可见“键值对”的概念被隐式转换了。set最大的特点是能够自动去重和排序,其底层是红黑树实现,时间复杂度为O(log n),相比动态 STL有序关联式容器 2025年10月10日 0 点赞 0 评论 218 浏览
深度剖析C++ STL vector容器的底层构造 学习了这么久的vector,想必读者对vector的底层原理一定充满好奇,为了满足读者的求知欲,本节将带领读者深入vector的学习,探寻其底层实现的奥秘。vector被称为动态数组,普通数组的promax版,动态扩展这一特性使得它与普通数组走上了截然不同的命运。下面我将提供其底层源码的一部分,有理有据地深入了解vector。template<typename_Tp, STL序列式容器 2025年10月02日 0 点赞 0 评论 248 浏览
C++ STL 排序算法std::nth_element()函数入门 nth_element(beg , pos , end)排序算法模板函数,”nth“意为”第几个“,该排序算法指的是在指定区间[beg , end)按排序规则找出位置在pos上的元素是谁并进行填充,此函数会打乱原有序列。使用nth_element(beg ,pos , end)时需要包含头文件<algorithm>。使用nth_element(beg ,pos C++常用算法(一) 2025年10月21日 2 点赞 0 评论 205 浏览
深度剖析C++ STL无序关联式容器的底层构造 C++ STL无序关联式容器:unordered_map容器、unordered_multimap容器、unordered_set容器、unordered_multiset容器,其底层构造都是基于哈希表封装的。如果读者还不具备哈希基础的话可自行跳转《哈希算法实例详解》学习。简单来说,无序关联式容器可以看作指针数组+链表的奇妙组合。原理可理解为:我们向堆区开辟了一段连续空间(可理解为数组),空间大小 STL无序关联式容器 2025年10月14日 0 点赞 0 评论 201 浏览
深入学习C++ STL list容器的迭代器 和其他容器一样,在学会创建容器后我们就要认识其迭代器。list同我们学过的vector一样,也有begin()、end()正向迭代器,rbegin()、rend()反向迭代器,更有可读不可改的cbegin()、cend()、crbegin()、crend()这种常量迭代器(c这里表示const,意为不可修改)。他们在链表中的位置如下图所示:list和之前学过的deque、vector、array一 STL序列式容器 2025年10月05日 0 点赞 0 评论 232 浏览