C++ STL填充算法std::generate()函数入门 前面一节我们学习了填充算法fill()函数和fill_n()函数,读者是否还记得它们的功能分别是什么吗?没错,fill()函数能对指定序列填充目标元素,fill_n()函数能够指定填充元素的个数。本节我们将继续学习填充算法——generate()函数,”generate“意为“生产”,顾名思义,generate()函数能够通过生成器函数为序列中的每个元素赋值。generate()函数的语法格式如下 C++常用算法(二) 2025年10月27日 0 点赞 0 评论 138 浏览
C++ STL stack容器适配器入门 栈是一种数据结构,遵循LIFO(last in first out)后进先出的原则。栈就像挤地铁一样,后上的人先出去。栈有两种行为,一个是”压栈“——push(val)或emplace(val),既插入元素,可以理解为头插法;一个是”弹栈“,既删除顶部元素,可以理解为头删法。我们可以查看栈的元素大小size(),判断栈是否为空empty()以及同类型的栈相互交换swap()。栈是一种很有趣的数据结 STL容器适配器 2025年10月16日 0 点赞 0 评论 181 浏览
深入学习C++ STL map容器的迭代器 和很多容器一样,map有正向迭代器begin()、end(),有反向迭代器rbegin()、rend(),还有常量迭代器cbegin()、cend()、crbegin()、crend(),(c表示const,可读不可改),这些迭代器都是双向迭代器,只能进行++或--操作,不能+5或-8随机访问。本节抓重点,主要讲map的其他迭代器。在前一节我们就总结了map常用成员函数,可跳转《初识ST库中的ma STL有序关联式容器 2025年10月07日 0 点赞 0 评论 221 浏览
C++ STL比较算法std::equal()函数入门 上一节我们学习了一元谓词判断算法,读者是否还记得他们分别是什么吗?没错,它们分别是all_of()函数、any_of()函数、none_of()函数,其中all_of()函数为”全称判断“,any_of()函数为”存在判断“,none_of()函数为”全否判断“。本节我们将学习新的算法——比较算法,那什么有时比较算法呢?就像字符串比较一样,比我我们有两个字符串s1和s2:strings C++常用算法(二) 2025年10月25日 0 点赞 0 评论 187 浏览
C++ STL 流缓冲区迭代器入门 上一节我们学习了流迭代器,本节我们继续深入学习流对象的缓冲区迭代器——分别是istreambuf_iterator(从缓冲区读取字符)和ostreambuf_iterator(向缓冲区写入字符)。由于缓冲区读取数据要比流对象快,所以流缓冲区迭代器的操作效率要比流迭代器高。但在需要类型转换和数据验证的场景中,流迭代器提供了更好的安全性和便利性,读者需要明晰两者之间的区别。它们的使用方式十分“相似&q STL迭代器适配器 2025年10月19日 0 点赞 0 评论 151 浏览
深入学习C++ STL vector容器的迭代器 在《什么是迭代器?》里我们就粗略地介绍了迭代器,现在,我们将会进行vector迭代器的深入学习,包括认识和实际操作迭代器。vector里的迭代器很简单!先说一下begin()、end(),这两个被称为正向迭代器;rbegin()、rend()被称为反向迭代器,这里r意思是reverse,反转的意思;还有cbegin()、cend()、crbegin()、crend(),这里c指的是const,意为 STL序列式容器 2025年10月02日 0 点赞 0 评论 263 浏览
C++ STL有序关联式容器如何更改排序规则? 到目前为止,我们已经把有序关联式容器全部学习完了,读者是否能够完整地枚举它们并清晰地区分它们呢?它们分别是:map容器、multimap容器、set容器和multiset容器。它们都有一个共同的特点,就是能够在元素插入时按照默认的排序规则将键(key)排序(默认都是升序排序),那么如何更改有序关联式容器的排序规则呢?对于这个问题,我推荐使用仿函数来实现。什么是仿函数,读者心里可能一头雾水。简单来说 STL有序关联式容器 2025年10月12日 0 点赞 0 评论 213 浏览
千万别认为C++ STL array容器是动态数组! 当我们提到STL容器,一看到array,可别天真地以为它和vector一样是动态数组,实际上,它也是c++里面的普通数组,只不过被封装成一个类,多了一些成员函数罢了。不信我证明给你看:#include<bits/stdc++.h>/*array也是普通数组*/usingnamespacestd;/*数组内存是连续的我们直 STL序列式容器 2025年10月01日 0 点赞 0 评论 441 浏览
C++ STL list容器入门 链表这种数据结构想必大家都不陌生吧!通过指针链接数据,就像锁链一样将数据”穿“起来,充分利用了”零碎内存“,提高内存空间利用率!如果读者还不熟悉链表这种数据结构,可自行跳转《链表》去学习一下链表。在STL库中,list是以双向链表的身份进入序列式容器集合的。每一个节点(node)都具备一前一后各一个指针,分别指向前节点后后节点,可以想到首节点前指针为NULL,尾节点后指针为NULL。链表不同于ve STL序列式容器 2025年10月05日 0 点赞 0 评论 219 浏览
C++ STL旋转算法std::rotate_copy()函数入门 前面一节我们学习了旋转算法 rotate() 函数,读者是否还记得它的功能是什么吗?没错,该函数能够对序列进行原地循环移位操作,该操作会物理破坏原序列完整性,如果你不想这样,读者推荐使用rotate_copy()函数。那什么是rotate_copy() 函数呢?"rotate" 意为"旋转","copy" 意为"复制" C++常用算法(二) 2025年10月26日 0 点赞 0 评论 144 浏览