deque容器底层详解 在《初识STL库中deque容器》我们谈到“deque底层是中控区+缓冲区,可以理解为通过指针链接数组块”不知读者是否对这句话有印象。理解这句话,其实已经了解deque的60%了。接下来,我将为读者一一解释deque的神秘面纱。deque分两部分,一部分是中控区,就是一个指针数组,存放着每一块内存的首地址;另一部分是缓冲区,存放着零散的小数组,所以说deque内元素可能不一定连续存储。画一张图读者 STL序列式容器 2025年10月04日 0 点赞 0 评论 40 浏览
C/C++如何设计函数多返回值? C/C++如何设计函数多返回值?有那么一种情况,函数本身需要返回多个值,如在地图参数中需要返回二维坐标(x,y),或者是系统设计中需要返回一个学生多门课程的成绩。这里提供了一些做法和思路。1.全局变量,为什么不用它?如,这样的方法,…… C++STL库教程(附带题库) 2022年05月29日 136 点赞 0 评论 79495 浏览
初识STL库中的set容器 对于SLT库中的关联式容器,我们第一个学到的容器就是map,它属于有序关联式容器且只允许唯一键值存在;当允许重复键值存在时,我们就学习了multimap。今天我们开始学习set容器,set可以被视为是特殊的map,它要求键必须等于值。所以,插入时只需要放入一个元素即可,可见“键值对”的概念被隐式转换了。set最大的特点是能够自动去重和排序,其底层是红黑树实现,时间复杂度为O(log n),相比动态 STL关联式容器 2025年10月10日 0 点赞 0 评论 13 浏览
什么是STL序列式容器? 序列式容器是STL中的一类容器,它们以严格的线性顺序来存储元素。这个顺序由元素被插入的位置决定,每个元素都有固定的前后关系。序列式容器包括以下容器:容器类型数据结构长度特性访问效率插入删除效率内存布局array<T,N>固定数组编译时固定O(1) 随机访问不支持增删元素连续内存vector<T>动态数组运行时可变O(1) 随机访问尾部O(1),中间O(n)连续内存deque STL序列式容器 2025年10月01日 0 点赞 0 评论 59 浏览
C++STL之Queue容器 C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。…… C++STL库教程(附带题库) 2022年03月14日 136 点赞 0 评论 115085 浏览
如何为STL库中的map添加元素? 为了给map容器添加元素,我们有4种方法:1. 最简洁的方式就是通过'[]',中括号内为key,通过map[key]=value的形式为map添加元素(这里如果已存在key,则进行覆盖);2. 然后就是大家熟悉的insert(),insert()在此处既可单个插入,又能多个插入,还可以通过迭代器参数优化从指定位置寻找插入位置;3. 然后就是emplace()直接构造了,但是仅能添加 STL关联式容器 2025年10月08日 0 点赞 0 评论 28 浏览
熟练运用STL是C++程序员的基本功! 对于C++程序员来说,熟练使用STL库是最基本的技能,尤其是在企业招聘的时候,招聘要求都会明确声明熟练运用STL库,因为这直接关系到开发效率、代码质量与程序性能。企业将STL掌握程度视为评估候选人专业素养的核心指标:初级水平要求能准确选用容器和算法完成业务逻辑;中级水平则必须理解底层机制,如vector扩容代价、迭代器失效原因,并能进行性能优化;高级水平更进一步,需能结合智能指针、移动 STL基础 2025年10月01日 0 点赞 0 评论 56 浏览
如何访问STL库中vector容器内的元素? 上一节我们具体了解了vector容器的迭代器及其使用方法,本节主要详细介绍各种访问vector内元素的方法,vector容器的访问方式和array非常像,可以跳转至《如何访问array容器内的元素?》将array和vector的访问方式类比起来学习,但是有一点需要牢牢记住,vector可不能通过get()函数模板进行访问!。这里也会详细讲解vector内元素的访问方式,因为学习既需要触类旁通,也需 STL序列式容器 2025年10月02日 0 点赞 0 评论 60 浏览
初识STL库中的forward_list 就像array是vector的“轻量型”一样,list也有自己的“轻量型”——forward_list。什么是forward_list,简单来说,forward_list就是单链表,每个节点只包含一个后驱指针,如果读者忘记单链表的相关知识,可跳转《链表》补充相关知识。在C++11后,为了追求轻便高效的容器,STL大师将list“优化”为forward_list,forward_list仅支持头增头 STL序列式容器 2025年10月06日 0 点赞 0 评论 41 浏览
如何访问deque容器? 前面我们讨论过怎么访问vector内容器,其实deque容器访问元素方法与前者一样非常相似,都可以通过'[]'、迭代器、以及back()和front()来访问元素,不同点在于deque没有data()指针也不支持函数模板get()<T>访问,学过的3种序列式容器里只有array容器支持。原因在于函数模板get()<T>访问元素要求容器在编译时固定数组序列,d STL序列式容器 2025年10月05日 0 点赞 0 评论 51 浏览