STL

C++ STL 迭代器辅助函数prev(it , n)和next(it , n)入门

本节我们将继续进行迭代器函数的学习,由于next(it , n)和prev(it , n)功能上极为”相似“,所以笔者进行统一讲解。这里it参数指的是迭代器,n可为'+'、'-',需要根据容器进行选择(比如你总不会使用forward_list容器来进行后退操作),函数会返回将'it'进行'n'次移动操作后的迭代器。具体通过代码来展示:

C++STL之Queue容器

C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。……

C++ STL vector<bool> - STL容器的败笔!

vector,被称为“最好的数组”,凭借其动态扩展能力和丰富的成员函数深受c++程序员和算竟选手喜爱,大家对此深信不疑。有一天,你听到个消息说:vector&lt;bool&gt;不是STL容器!此时,大家心里恍如晴天霹雳:要知道vector是世界上最好的序列式容器,谁敢在此质疑vector的完美设计?起初,笔者也同大家一样感到莫名其妙,迅速打开dev,创建vector&lt;bool&gt;看看

深度剖析C++ STL deque容器的底层构造

在《初识STL库中deque容器》我们谈到“deque底层是中控区+缓冲区,可以理解为通过指针链接数组块”不知读者是否对这句话有印象。理解这句话,其实已经了解deque的60%了。接下来,我将为读者一一解释deque的神秘面纱。deque分两部分,一部分是中控区,就是一个指针数组,存放着每一块内存的首地址;另一部分是缓冲区,存放着零散的小数组,所以说deque内元素可能不一定连续存储。画一张图读者

C++ STL序列查找算法std::find_end()函数入门

前面我们学习的查找算法都是单个元素进行查找,本节我们学习一个按序列进行查找的算法——find_end()。find_end(first1,last1,first2,last2)的功能是在主序列[first1,last1)中寻找最后一次出现的子序列[first2,last2),如果找到就返回最后一次出现在主序列中的子序列的起始迭代器;如果找不到就主序列的last1迭代器。举个例子,主序列是{&#39

浅谈C++ STL的基本组成部分

通常认为,STL(标准模板库)的体系结构由六大核心组件构成:容器、算法、迭代器、函数对象、适配器和内存分配器。在这套体系中,迭代器、函数对象、适配器和内存分配器作为支撑性组件,共同为容器和算法这两个核心组件提供服务与协作支持。容器是STL的基础,它如同各种规格的“智能储物箱”。这些模板类(如顺序容器vector、list,关联容器map、set)封装了底层数据结构,负责数据的存储、组织和管理,为用

C++ STL容器该如何选择?

到目前为止,我们已经把所有容器全部学习完毕!包括:序列式容器:array容器、vector容器、deque容器、list容器、forward_list容器。有序关联式容器:map容器、set容器、multimap容器、multiset容器。无序关联式容器:unordered_map容器、unordered_multimap容器、unordered_set容器、unorder

C++ pair模板类入门

当谈到关联式容器时,我们第一反应就要是键值对了,关联式容器内的元素通过键值对的方式存在,方便我们直接通过key(键)来操作元素(value)值,提高了操作效率。键值对通过把两个元素”捆绑“起来,实现一一对应的关系。今天我们重点讲解构成关联式容器的基础,模板类——pair。pair的意思是”一对“,类似”情侣“的概念,将两个数据”捆绑“起来。其本质是一个结构体,存储了两个任意数据类型,能够进行初始化

C++ STL 流迭代器适配器入门

流迭代器适配器,指的是将输入输出流当作迭代器来使用,分两种:istream_iterator用于写入流对象;ostream_iterator用于读取流对象。流迭代器的目的是让流对象适配容器,桥接算法以实现声明式的数据管理通道。那什么是流对象呢?读者可能还不熟悉这个名词。其实,我们从一开始接触编程的时候就学过流对象了!读者还记得”cout&lt;&lt;&quot;Hello World!&quot

C++ STL set容器如何删除元素?

前面一节我们学会了3种方法为set容器添加元素,分别是insert()、emplace()和emplace_hint()。如果我们需要删除set内元素,读者第一时间会想到什么?没错,erase()成员函数。set容器主要就是通过erase()删除元素的,clear()实现元素清空。下面我们就通过代码分别展示如何为set容器删除元素。#include&lt;iomanip&gt;#include&