C++ STL 反向迭代器适配器入门 反向迭代器适配器,又被称为反向迭代器或逆向迭代器(往后统一“反向迭代器”命名),顾名思义,就是用来逆序输出元素的。读者请牢牢记住,反向迭代器适配器的适配迭代器要么是双向迭代器,要么是随机迭代器,绝不可能是前向迭代器!其原因也可想而知,适配器只是对现有现有功能进行包装,无法为底层迭代器添加原本不支持的操作,比如forward_list这种前向迭代器,它原本就不支持--操作,就别指望forward_l STL迭代器适配器 2025年10月19日 0 点赞 0 评论 944 浏览
C++ STL 迭代器辅助函数prev(it , n)和next(it , n)入门 本节我们将继续进行迭代器函数的学习,由于next(it , n)和prev(it , n)功能上极为”相似“,所以笔者进行统一讲解。这里it参数指的是迭代器,n可为'+'、'-',需要根据容器进行选择(比如你总不会使用forward_list容器来进行后退操作),函数会返回将'it'进行'n'次移动操作后的迭代器。具体通过代码来展示: STL迭代器适配器 2025年10月20日 0 点赞 0 评论 944 浏览
C++ STL遍历算法std::for_each()函数入门 到目前为止,排序、合并、查找模板函数我们都已经深入接触过了,读者是否能够感受到<algorithm>算法头文件的便利之处?对于STL库给定的完美容器我们直接用,高效算法我们直接调,大大提高了我们的工作效率。本节我们将继续学习另外一个模板函数——for_each()。for_each(beg , end , op):这里表示对区间[beg , end)进行op操作,这里op既可以是普通函 C++常用算法(一) 2025年10月22日 0 点赞 0 评论 949 浏览
C++ STL queue容器适配器模拟银行活动 queue适配器,遵守FIFO先入先出的规则,能够很好地模仿现实生活中的排队行为,下面就让我们通过queue适配器模拟用户到银行存取钱活动。情景分析:固定生成5名用户,随机生成他们的名字和目的,然后进行动态统计,排队完成所有银行活动。#include<iostream>#include<queue>#include<random>#include<u STL容器适配器 2025年10月17日 0 点赞 0 评论 949 浏览
深度剖析C++ STL vector容器的底层构造 学习了这么久的vector,想必读者对vector的底层原理一定充满好奇,为了满足读者的求知欲,本节将带领读者深入vector的学习,探寻其底层实现的奥秘。vector被称为动态数组,普通数组的promax版,动态扩展这一特性使得它与普通数组走上了截然不同的命运。下面我将提供其底层源码的一部分,有理有据地深入了解vector。template<typename_Tp, STL序列式容器 2025年10月02日 1 点赞 0 评论 951 浏览
C++ STL map容器如何获取值(value)? 在基本掌握map容器及其迭代器的基础下,本节将带领读者一起谈论如何获取map中的value。前面我们提到map重载了'[]'符号,能够通过'[]'添加或查看value;还有find()输入key获取指向value的迭代器;其实我们还能通过at()来获取value,count()查看value是否存在。通过代码分别展示3种方式:#include<bits/std STL有序关联式容器 2025年10月07日 0 点赞 0 评论 953 浏览
C++ STL deque容器如何增删元素? 前面我们已经充分了解deque的基本知识以及访问方式,本节将一口气为读者详细介绍如何对deque进行增删操作,加快我们的学习进度。这里可以类比vector的增删操作,《vector容器怎么在指定位置前插入元素?》、《vector容器怎么删除元素呢?》,读者通过对比学习,总结归纳出自己的宝贵经验,提高对STL容器的掌控力。我们先谈谈“增”这个操作:对比vector,我们都知道deque能够实现头增尾 STL序列式容器 2025年10月05日 0 点赞 0 评论 957 浏览
C++ STL二分查找std::equal_range()函数入门 前面一节我们学习了upper_bound()函数,该哈数的功能是在指定有序区间内查找第一个高于目标元素的元素。本节我们开始学习新的二分查找函数——equal_range()函数。“equal”意为“对等的”,“range”意为“范围”,equal_range()函数的功能是在指定有序范围内查找等于目标元素的元素范围,作用区间和lower_bound()函数一样都必须为有序区间,比如我们有一个有序序 C++常用算法(一) 2025年10月25日 0 点赞 0 评论 961 浏览
C++ STL比较算法std::mismatch()函数入门 上一节我们学习了比较算法equal()函数,读者是否还记得它的功能是什么吗?没错,它能够帮助我们快速比较两个序列。本节我们将学习新的比较算法——mismatch()函数。“mis”表示“否定”,“match”表示“匹配”,与equal()函数的功能不同,mismatch()函数不仅能判断两个序列是否相等,它还能找出第一个不相同的元素在哪。mismatch()函数的语法格式为://形式1 C++常用算法(二) 2025年10月25日 0 点赞 0 评论 964 浏览
深度剖析C++ STL list容器的底层构造 在《初识STL库中的list容器》我们就曾明确谈到list容器是双向链表,每一个节点由两个指针和数据组成,两个指针分别指向前一个节点和后一个节点。长这样:链表属于相对简单的数据结构,我们也可以手搓一个简单链表:首先先创建一个结构体,包括数据域和指针域:structnode{intn;//数据域/*创建node指针初始值为空*/node*nex STL序列式容器 2025年10月05日 0 点赞 0 评论 964 浏览