C++ STL vector容器冗余大量空间,你会怎么做? 在上一节里我们讨论了通过reserve()这个成员函数去预存空间,避免“动态扩展行为”来影响效率。如果还有读者不知道这个小技巧的,可自行跳转《vector性能优化小技巧》。如果说预存reserve()是“增”,那么肯定会有“减”这个概念。在实际上工作中,当我们发现vector预存的空间太大,远远高于需求时,我们就需要“减”的这个操作,将闲置空间释放提供更多的内存。此操作我有两个方法,分别是通过sw STL序列式容器 2025年10月04日 0 点赞 0 评论 898 浏览
C++ STL 迭代器辅助函数advance()入门 本章到此为止,我们已经学习了所有的迭代器适配器。但我们并不止步于此,我们还可以对迭代器有更深的理解!从本节开始,我们将进入迭代器函数的学习。那什么是迭代器函数呢?对于这个疑惑,读者无需担心,因为迭代器函数就像普通函数一样有参数和返回值两个基本属性,它能使我们更好地操作函数。值得注意的是,迭代器函数需要包含<iterator>头文件才能使用。迭代器函数并不多,就只有4个:advance( STL迭代器适配器 2025年10月20日 0 点赞 0 评论 938 浏览
C++STL之List容器 C++STL之List容器1.再谈链表List链表的概念再度出现了,作为线性表的一员,C++的STL提供了快速进行构建的方法,为此,在前文的基础上通过STL进行直接使用,这对于程序设计中快速构建原型是相当有必要的,这里的STL…… C++STL库教程(附带题库) 2022年01月24日 137 点赞 0 评论 112534 浏览
C++ STL map容器入门 前面我们学习了pair模板类——《初识模板类pair》是为了本节学习map作准备。map作为有序关联式容器,其通过pair模板的形式存储元素,并根据key值(指pair中的first)进行自动排序,排序默认是升序,但我们也可以通过仿函数实现降序排序,值得注意的是,map的键值具有唯一性,不允许出现重复键值。接下来我们通过代码来了解如何创建map容器:#include<bits/stdc++. STL有序关联式容器 2025年10月07日 0 点赞 0 评论 981 浏览
C++ STL复制算法std::reverse_copy()函数入门 前面一节我们学习了反向复制算法 copy_backward() 函数,读者是否还记得它的功能是什么吗?没错,该函数能够从序列的末尾开始向开头进行复制。本节我们将学习一个真正反转元素顺序的算法——reverse_copy() 函数。"reverse" 意为"反转","copy" 意为"复制",从名称就能看出,这个函数不仅 C++常用算法(二) 2025年10月26日 0 点赞 0 评论 938 浏览
C++ STL 排序算法std::is_sorted()函数入门 到目前为止,我们已经把主要的排序模板函数讲完了,读者还记得有哪些吗?这里笔者通过表格向读者展示一下,希望读者对这些排序模板函数有基本掌握。函数名功能sort对指定范围内的元素进行通用、高效的排序。不保证相等元素的原始相对顺序。通常使用内省排序(快速排序+堆排序),平均和最优时间复杂度为O(N log N)。stable_sort对指定范围内的元素进行稳定排序。保证相等元素在排序后的相对顺序与其在原 C++常用算法(一) 2025年10月22日 0 点赞 0 评论 939 浏览
C++ STL unordered_multiset容器入门 本节我们将进行unordered_multiset容器学习。对比前面我们学过的unordered_set容器,unordered_multiset容器的“特殊之处”在于允许出现重复值,也就是说unordered_multiset容器将“退化”成普通数组,由于其内的元素被哈希函数映射到桶数组里,所以还保持“无序”性,有别于普通数组。unordered_ STL无序关联式容器 2025年10月15日 0 点赞 0 评论 854 浏览
C++模板是什么? C++模板是C++编程语言中的泛型编程工具,它允许你编写与具体数据类型无关的通用代码。简单来说,模板让你可以创建一个"代码蓝图",编译器会根据这个蓝图为不同的数据类型生成具体的代码。举个例子:在C++的世界里,有很多种数据类型,比如int(整型)、double(双精度浮点型)、float(单精度浮点型)、long long(长整型)等,为了实现各个类型的加法函数,我们一般都会这 STL基础 2025年10月01日 3 点赞 0 评论 981 浏览
C++ STL multiset容器入门 通过前面对set容器的学习,我们已经完全掌握了set容器基本的增删查改操作,如果读者还不知道set容器可跳转《初识STL库中的set容器》。本节我们将会学习一个特殊的set容器——multiset,就像multimap对于map那样允许存在重复键值,multiset的特殊之处也在于允许存在重复键值。读者可以试想一下,如果set允许存在重复键值,那么影响最大的会是什么?没错,multimap会丧失“ STL有序关联式容器 2025年10月11日 0 点赞 0 评论 991 浏览
C++ STL分区算法std::partition()函数入门 本节我们进行分区算法——partition()函数的学习。”partition“意为“隔断”,partition(beg,end,pred)函数的功能是将一个序列“切割”成两个序列(逻辑意义上操作,并非创建两个序列),前一个序列满足一元谓词,后一个序列不满足一元谓词,并返回指向第二个序列的起始迭代器。举个例子:比如我们有一个序列{1,3,5,6,7},我们想要把该序列分区,一个奇数区,一个偶数区, C++常用算法(一) 2025年10月24日 0 点赞 0 评论 1069 浏览