阿里巴巴网站建设分析,商城系统软件开发,什么样的网站利于百度优化,电商网站人员配置文章目录 一、STL 容器简介1、STL 容器区别2、STL 容器分类3、常用的 STL 容器 一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ;
容器的内存空间是否连续 : 向量 vector 的内存空间… 文章目录 一、STL 容器简介1、STL 容器区别2、STL 容器分类3、常用的 STL 容器 一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ;
容器的内存空间是否连续 : 向量 vector 的内存空间是连续的 , 列表 List 的内存空间是不连续的 ;容器中的元素节点关系 : 顺序排列 , 单向链表 , 双向链表 , 树形关系 ;容器中的元素是否允许重复 : 集合 Set 中的元素不允许重复 ;容器中的元素插入限制 : 是否允许 插入到中间 , 插入到首部 , 插入到尾部 ;容器中的元素移除限制 : 是否允许 移除中间元素 , 移除首部元素 , 移除尾部元素 ; 数据结构 主要是 研究 节点 与 节点 之间关系的 ; 2、STL 容器分类 STL 容器 分为 2 大类 , 分别是 序列式容器 和 关联式容器 ; 序列式容器 : Sequence Containers , 容器中每个元素的位置都是固定的 , 元素的位置取决于插入元素的 时间 和 位置 , 与元素值无关 ; 向量 Vector , 双端队列 Deque , 列表 List 是序列式容器 ;如下图所示 , 序列式容器的位置是固定的 ; 关联式容器 : Associated Containers , 元素的位置与插入顺序无关 , 容器中有一个特定排序标准 , 默认是哈希值 ; 集合 Set , 多重集合 MultiSet , 映射 Map , 多重映射 MultiMap 是 关联式容器 ;如下图所示 , 关联式容器的元素位置与特定规则有关 , 与插入时间和位置无关 ; 3、常用的 STL 容器 常用的 STL 容器 :
向量 vector : 是连续存储的元素 , 其内存是连续的 ;可以 访问和修改任意元素 , 但在 序列尾部 进行 插入 和 删除时 , 具有常量时间复杂度 ;需导入 vector 头文件 ; 双端队列 deque : 与向量类似 , 不同之处是 双端队列可以 在序列头部 插入和删除 操作 , 具有常量时间复杂度 ; 其本质是 连续存储 的 指向不同元素 的 指针 所组成的 数组 ;需导入 deque 头文件 ; 列表 list : 列表是由 节点 组成的双向链表 , 每个节点保存一个数据元素 , 同时有两个指针 , 分别指向 前驱和后继 ;对任意元素的访问与对两端的距离成正比但对某个位置上插入和删除一个项的花费为常数时间需导入 list 头文件 ; 集合 set : 元素不能重复的集合 ; 本质是 红黑树 ;每个节点都包含一个元素 , 节点之间以某种作用于元素对的谓词排列 , 没有两个不同的元素能够拥有相同的次序 ;需导入 set 头文件 ; 多重集合 multiset : 元素可以重复的集合 , 本质是 两个元素 次序相等 ; 多重集合 的元素在容器中根据指定的比较函数按键值排序 , 因此它是有序的 ;多重集合 的元素不需要具有唯一键 , 一个键值可具有多个相关联的元素值 ;需导入 set 头文件 ; 映射 map : 存放键值对 , 一个键对应一个值 ; 需导入 map 头文件 ; 多重映射 multimap : 存放键值对 , 一个键对应多个值 ; 需导入 map 头文件 ; 栈 stack : 后进先出 LIFO 的 线性存储表 , 最后一个添加到栈中的元素将是第一个被移除的元素 ; 需导入 stack 头文件 ; 队列 queue : 先进先出 FIFO 的 线性存储表 , 其元素的插入只能在队尾 , 而元素的删除只能在队首 ; 需导入 queue 头文件 ;