C++ STL list容器如何删除元素? 前面我们学会《如何为STL库中list添加元素?》,本节将为读者详细介绍如何删除list容器内的元素。当然,读者也可自行跳转《初识STL库中的list容器》查询list成员函数表,查找“删除”、“移除”等关键字查看具体函数,加深记忆。如今学到这里,看到删除字样,我们第一反应就要是这个pop_front()、pop_back()头删尾删,还有erase()按位置迭代器删,clear()一键全清。不同 STL序列式容器 2025年10月06日 5 点赞 0 评论 413 浏览
C++ STL二分查找std::equal_range()函数入门 前面一节我们学习了upper_bound()函数,该哈数的功能是在指定有序区间内查找第一个高于目标元素的元素。本节我们开始学习新的二分查找函数——equal_range()函数。“equal”意为“对等的”,“range”意为“范围”,equal_range()函数的功能是在指定有序范围内查找等于目标元素的元素范围,作用区间和lower_bound()函数一样都必须为有序区间,比如我们有一个有序序 C++常用算法(一) 2025年10月25日 0 点赞 0 评论 220 浏览
C++ STL 反向迭代器适配器入门 反向迭代器适配器,又被称为反向迭代器或逆向迭代器(往后统一“反向迭代器”命名),顾名思义,就是用来逆序输出元素的。读者请牢牢记住,反向迭代器适配器的适配迭代器要么是双向迭代器,要么是随机迭代器,绝不可能是前向迭代器!其原因也可想而知,适配器只是对现有现有功能进行包装,无法为底层迭代器添加原本不支持的操作,比如forward_list这种前向迭代器,它原本就不支持--操作,就别指望forward_l STL迭代器适配器 2025年10月19日 0 点赞 0 评论 216 浏览
C++ STL set容器入门 对于SLT库中的关联式容器,我们第一个学到的容器就是map,它属于有序关联式容器且只允许唯一键值存在;当允许重复键值存在时,我们就学习了multimap。今天我们开始学习set容器,set可以被视为是特殊的map,它要求键必须等于值。所以,插入时只需要放入一个元素即可,可见“键值对”的概念被隐式转换了。set最大的特点是能够自动去重和排序,其底层是红黑树实现,时间复杂度为O(log n),相比动态 STL有序关联式容器 2025年10月10日 0 点赞 0 评论 281 浏览
深度剖析C++ STL vector容器的底层构造 学习了这么久的vector,想必读者对vector的底层原理一定充满好奇,为了满足读者的求知欲,本节将带领读者深入vector的学习,探寻其底层实现的奥秘。vector被称为动态数组,普通数组的promax版,动态扩展这一特性使得它与普通数组走上了截然不同的命运。下面我将提供其底层源码的一部分,有理有据地深入了解vector。template<typename_Tp, STL序列式容器 2025年10月02日 0 点赞 0 评论 327 浏览
C++ STL替换算法std::replace()函数入门 前面一节我们学习了转换算法 transform() 函数,读者是否还记得它的功能是什么吗?没错,transform() 函数能够对序列中的元素进行转换操作并将结果存储到目标位置。本节我们将学习替换算法——replace()、replace_if() 和 replace_copy() 函数。"replace" 意为"替换",顾名思义,这些函数能够对序列中满足条 C++常用算法(二) 2025年10月27日 0 点赞 0 评论 244 浏览
C++ STL复制算法std::copy_backward()函数入门 前面一节我们学习了条件复制算法copy_if()函数,读者是否还记得它的功能是什么吗?没错,该函数能够根据条件筛选元素并复制到目标区域。本节我们将学习一个反向复制算法——copy_backward()函数。”back“意为”后面“,”forward“意为”朝某个方向“,”copy_backward“表示”从后面往前复制“,从名称就能看出,这个函数与常规复制方向不同,它从序列的末尾开始向开头进行复制 C++常用算法(二) 2025年10月26日 0 点赞 0 评论 211 浏览
深入学习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 评论 315 浏览
C++ STL容器有哪些常用成员函数和成员变量? 使用STL需要我们了解容器及其对应的成员函数和成员变量,不求全部背诵,但是要有个印象,方便文档查询和算法使用,下表罗列了算法竞赛中STL常用函数和变量:类别名称功能说明适用容器容量相关size()返回当前元素个数全部容器empty()判断容器是否为空全部容器max_size()返回容器可容纳的最大元素数全部容器capacity()返回当前分配的内存容量(仅vector/string)vector, STL序列式容器 2025年10月01日 0 点赞 0 评论 309 浏览
C++ STL序列查找算法std::search_n()函数入门 上一节我们学习了序列查找算法search()函数,本节我们将继续学习序列查找算法——search_n()函数。我们知道,search()函数的功能是找寻主序列里第一次出现子序列的位置,那么这个search_n()函数到底有什么功能呢?“n”有“几个的意思”,search_n()函数的功能是在一个主序列中找寻第一次出现的n个连续且相等元素,类比search()函数的话就相当于是子序列变成了常量序列( C++常用算法(一) 2025年10月24日 0 点赞 0 评论 218 浏览