c++容器解读
来源:互联网 发布:软件功能说明书模板 编辑:程序博客网 时间:2024/06/05 17:18
什么是容器
在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。
容器类是一种对特定代码重用问题的良好的解决方案。
通用容器的分类
STL 对定义的通用容器分三类:顺序性容器、关联式容器和容器适配器。
顺序性容器 是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。顺序性容器中的每个元素均有固定的位置,除非用删除或插入的操作改变这个位置。这个位置和元素本身无关,而和操作的时间和地点有关,顺序性容器不会根据元素的特点排序而是直接保存了元素操作时的逻辑顺序。比如我们一次性对一个顺序性容器追加三个元素,这三个元素在容器中的相对位置和追加时的逻辑次序是一致的。
关联式容器 和顺序性容器不一样,关联式容器是非线性的树结构,更准确的说是二叉树结构。各元素之间没有严格的物理上的顺序关系,也就是说元素在容器中并没有保存元素置入容器时的逻辑顺序。但是关联式容器提供了另一种根据元素特点排序的功能,这样迭代器就能根据元素的特点“顺序地”获取元素。
关联式容器另一个显著的特点是它是以键值的方式来保存数据,就是说它能把关键字和值关联起来保存,而顺序性容器只能保存一种(可以认为它只保存关键字,也可以认为它只保存值)。这在下面具体的容器类中可以说明这一点。
容器适配器 是一个比较抽象的概念, C++ 的解释是:适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器是让一种已存在的容器类型采用另一种不同的抽象类型的工作方式来实现的一种机制。其实仅是发生了接口转换。那么你可以把它理解为容器的容器,它实质还是一个容器,只是他不依赖于具体的标准容器类型,可以理解是容器的模版。或者把它理解为容器的接口,而适配器具体采用哪种容器类型去实现,在定义适配器的时候可以由你决定。标准容器类
特点
顺序性容器
vector
从后面快速的插入与删除,直接访问任何元素
deque
从前面或后面快速的插入与删除,直接访问任何元素
list
双链表,从任何地方快速插入与删除
关联容器
set
快速查找,不允许重复值
multiset
快速查找,允许重复值
map
一对多映射,基于关键字快速查找,不允许重复值
multimap
一对多映射,基于关键字快速查找,允许重复值
容器适配器
stack
后进先出
queue
先进先出
priority_queue
最高优先级元素总是第一个出列
- 【C++】队列容器 头文件 #include<queue> 解读
- tomcat server容器解读
- c++容器解读
- C++ STL容器解读
- 深入解读Spring Framework IoC容器(第四弹:p命名空间和c命名空间)
- C++--容器
- 《Oracle 12c特性解读-容器数据库和灾备》金牌客座讲师主讲,进阶高级DBA必修
- 从源代码解读spring IOC容器
- Spring之IOC容器解读系列-准备
- 从源代码解读spring IOC容器
- 从源代码解读spring IOC容器
- java容器源码--hashmap源码解读
- Spring源码解读 IOC容器初始化
- 容器CNI完全解读(一)
- Java容器之LinkedHashMap源码解读
- 红帽开源专家解读容器与OpenStack发展趋势
- 【C/C++】STL容器
- C程序员解读Java
- Reader和Writer
- MPU6050调试记录
- leetcode:Next Permutation
- 负载均衡策略深入剖析
- logic.smashthestack.org_level01
- c++容器解读
- tomcat使用数据源和连接池技术连接Sql server数据库
- 利用openssl创建一个简单的CA
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接---个人整理
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- git基本操作的一些实用笔记
- Struts2整合Spring从xml到注解
- BestCoder#27两道水题 HDU5162&&5163
- ACM第6天 Dp进阶HDU 1421 搬寝室