深入学习C++ STL set容器的迭代器 前面我们初识了set容器,本节将会详细介绍set容器的迭代器,set容器迭代器和map容器、multimap容器一样都是双向迭代器,只能进行++或--操作,不能进行随机访问。同此,set容器有正向迭代器begin()、end(),有反向迭代器rbegin()、rend(),还有常量迭代器cbegin()、cend()、crbegin()、crend(),(c表示const,可读不可改)。由于set STL有序关联式容器 2025年10月10日 1 点赞 0 评论 391 浏览
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 评论 385 浏览
C++ STL vector容器冗余大量空间,你会怎么做? 在上一节里我们讨论了通过reserve()这个成员函数去预存空间,避免“动态扩展行为”来影响效率。如果还有读者不知道这个小技巧的,可自行跳转《vector性能优化小技巧》。如果说预存reserve()是“增”,那么肯定会有“减”这个概念。在实际上工作中,当我们发现vector预存的空间太大,远远高于需求时,我们就需要“减”的这个操作,将闲置空间释放提供更多的内存。此操作我有两个方法,分别是通过sw STL序列式容器 2025年10月04日 0 点赞 0 评论 416 浏览
C++ STL序列查找算法std::search()函数入门 本节我们将继续进行序列查找的学习——search()函数。读者还记得我们之前学过的find_end()函数吗?如果忘记了可前往《C++ STL序列查找算法find_end()函数入门》自行学习。find_end()函数的功能是找寻主序列里最后一次出现子序列的位置,search()函数恰恰相反,search()函数的功能是找寻主序列里第一次出现子序列的位置。search(first1,last1,f C++常用算法(一) 2025年10月24日 0 点赞 0 评论 407 浏览
C++ STL 插入迭代器适配器入门 插入迭代器适配器,又被称为插入迭代器或插入器(往后统一“插入迭代器”命名),故名思意,就是使用迭代器插入元素。一般我们都是通过迭代器读改元素,比如我要读改一个元素(it为非可读迭代器,假设*it数据类型为Int):*it=0;//改cout<<*it;//读而使用插入迭代器时:*it=0;//插入一个元素插入迭代 STL迭代器适配器 2025年10月19日 0 点赞 0 评论 383 浏览
深度剖析C++ STL list容器的底层构造 在《初识STL库中的list容器》我们就曾明确谈到list容器是双向链表,每一个节点由两个指针和数据组成,两个指针分别指向前一个节点和后一个节点。长这样:链表属于相对简单的数据结构,我们也可以手搓一个简单链表:首先先创建一个结构体,包括数据域和指针域:structnode{intn;//数据域/*创建node指针初始值为空*/node*nex STL序列式容器 2025年10月05日 0 点赞 0 评论 392 浏览
C++ STL比较算法std::lexicographical_compare()函数入门 前面一节我们学习了比较算法mismatch()函数,读者是否还记得它的功能是什么吗?没错,它不仅仅能判断两个序列是否完全相等,在不等的情况下,它还能帮我们找出哪一对元素不相等。本节我们将学习新的比较算法——lexicographical_compare()函数。“lexico”表示“字典”,“graphical”表示“书写的”,这里lexicographical_compare()函数指的是对两个 C++常用算法(二) 2025年10月25日 0 点赞 0 评论 334 浏览
C++ STL 迭代器辅助函数advance()入门 本章到此为止,我们已经学习了所有的迭代器适配器。但我们并不止步于此,我们还可以对迭代器有更深的理解!从本节开始,我们将进入迭代器函数的学习。那什么是迭代器函数呢?对于这个疑惑,读者无需担心,因为迭代器函数就像普通函数一样有参数和返回值两个基本属性,它能使我们更好地操作函数。值得注意的是,迭代器函数需要包含<iterator>头文件才能使用。迭代器函数并不多,就只有4个:advance( STL迭代器适配器 2025年10月20日 0 点赞 0 评论 348 浏览
C++ STL unordered_map容器如何添加元素? 为了给unordered_map容器添加元素,我们有4种方法:1. 最简洁的方式就是通过'[]',中括号内为key,通过unordered_map[key]=value的形式为容器添加元素(这里如果已存在key,则进行覆盖);2. 然后就是大家熟悉的insert(),insert()在此处既可单个插入,又能多个插入;3. emplace()直接传入参数构建,但是仅能添加单个元素;4 STL无序关联式容器 2025年10月14日 0 点赞 0 评论 431 浏览
深入学习C++ STL map容器的成员函数emplace_hint() 前面我们简单提到过emplace_hint()这个插入函数,在能够巧用迭代器的情况下就能实现map高效插入元素。emplace_hint(hint,key,val)有3各参数,第一个是位置迭代器hint,第二个是key键值,第三个是val值。它的返回值为:如果成功插入返回插入元素对应的迭代器,否则返回hint。如何巧用迭代器?大多数情况下emplace_hint()都是进行批量元素插入。比如我要插 STL有序关联式容器 2025年10月08日 0 点赞 0 评论 355 浏览