了解容器
来源:互联网 发布:渠道管理 知乎 编辑:程序博客网 时间:2024/06/05 07:37
STL是标准的C++库,容器时其中的一个重要组成部分。在实现容器时主要提供了顺序容器和关联容器。STL为容器的遍历提供了迭代器。STL也提供了100多种算法的实现。这些算法包括排序,遍历等等。
什么是容器?
容器时容纳特定类型对象的集合,因此容器中的对象必须是统一的类型,而且该类型必须是可拷贝构造和赋值的,所以包括的类型有内置的基本数据类型和带有公用拷贝构造函数和赋值操作符的类。STL中提供的容器有vector,list,deque,set,multiset,map,multimap等。
在STL中,容器一般用模板类来实现。不过STL并没有采用面向对象的技术,所以在STL中并没有一个通用的容器类,各种具体的容器也没有统一的基类。
容器可以视为是数组的扩展,即对象的数组(广义数组),其中的元素(对象)通过容器对“[]”的重载,可以喝数组一样利用下标(索引)来访问。
在STL中提供了两种类型的容器:顺序容器和关联容器。这两种分类下面是各种具体的容器:
一:顺序容器,指的是将一组具有相同类型T的对象,以严格的线性形式组织在一起。顺序由容器可以是为数组和链表的推广。包括有以下三种顺序容器:。
a.vector<T>
b.deque<T>
c.list<T>
二:关联容器,提供一个key(键)实现对元素的随机访问,其特点是key是有序的,即元素是按预定义的键顺序插入的。关联容器具有从基于键的集合中快速提取对象的能力,其中集合的大小在运行时是可变的。关联容器可以视为关联数组,映射或字典的推广,他们保存的都是键值对,给定了其中的一个被称为键(key)的值,就可以快速访问与其对应的另一个值的值。STL中的额管理容器有以下四种。
a.set(Key)(集合):支持唯一键值,并提供对键本身的快速搜索;
b.multiset(Key)(多重集合):支持可重复键值,并提供对键本身的快速检索。
c.map(Key,T)支持唯一Key类型的键值, 并提供对另一个基于键的类型T的快速检索。
d.multimap(Key,T)(多重映射):支持可重复Key类型的键值,并提供对另一个基于键的类型T的快速检索。
三:除了这两种以外,还有一种容器是容器适配器。不过容器适配器不是独立的容器,只是某种容器的变种,他提供原容器的一个专用的受限借口。特别是,容器适配器和普通容器的不一样是在于不提供迭代器。在STL中有三种容器适配器,具体如下。
a.stack<T>(栈):只支持top()(读取栈顶元素),push()(在栈顶出加入新元素)和pop(取出栈顶元素)操作(先入后出)的一种序列容器。
b.queue<T>(队列):与stack相似,queue也是对序列容器的限制实现。与栈相比,队列也支持back()(读取队尾处的元素)和push_back()(在队尾处插入新的元素)操作,但是不再支持pop_back()(取出队尾处的元素)操作。不过,队列允许front()(读取队首处的元素)和pop_front()(取出队首处的元素)的操作(前出后入)。
c.priority_queue()<T>(优先队列):也是一种队列queue,不过其中的每个元素都被给定了一个优先级,用来控制元素达到队首top()的顺序。默认情况下优先队列简单的使用运算符 < 进行元素比较,top()返回最大的元素 。
注意:优先队列,并不要求其全部元素都是有序的,而只要求第一个元素是最大的。
0 0
- 了解容器
- Spring容器的简单了解
- 了解tomcat 3 -- tomcat容器
- 了解 Servlet 和 Filter,容器启动时~
- 了解文本是属于元素还是容器
- 【Docker】容器技术黑马Docker(一)——了解容器技术,了解Docker
- C++ premier读书笔记容器和算法大致了解
- C#中Hashtable容器的了解与使用
- GitChat · 运维 | 深入了解 Azure 云平台容器技术服务
- spring 学习(1) 了解spring 容器的初始化
- Spring 核心知识点 IOC容器入门与了解
- Java 容器类学习笔记1--了解Java提供的容器类List、ArrayList、Vector及map、HashTable、HashMap
- 了解
- 了解
- 了解
- 了解
- 了解
- 了解
- acrgis api for javaScript中的portal查询
- 拦截器,监听器,过滤器 区别
- javaWeb项目部署到阿里云服务器步骤win环境
- Java编程思想(四)-- 初始化与清理
- 安装Windows和Ubuntu双系统
- 了解容器
- java中long类型转换为int类型
- 苏嵌单片机(一)
- 卡尔曼滤波的原理说明
- GSON 报错HibernateProxy. Forgot to register a type adapter?
- dao--4.连接池
- Nonce、Timestamp——解决Replay-Attack问题
- Vue.Js2.0建议学习路线
- html标签一