三 容器综述
来源:互联网 发布:golang accept 编辑:程序博客网 时间:2024/06/16 13:06
一 容器(containers):
容器用来管理一组元素,STL提供了如下两类容器:
(1)序列式容器(sequential containers):
序列式容器,其中的元素都是可序的,但未必有序。
STL提供了vector、deque、list、stack、queue、priority_queue等。其中stack、queue由于只是将deque改头换面而成,技术上被归为适配器(adapter)。也可以array和strings当做一种序列式容器。
(2)关联式容器(Associative Containers)
关联式容器:已序群集,元素位置取决于特定的排序准则。
标准STL关联式容器分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表)。这些容器底层机制均以RB-tree(红黑树)完成。RB-tree也是一个独立容器,但不对外开放。
此外,SGI STL还提供了不在标准规格之列的关联式容器:hash_table(散列表),以及以hash_table为底层机制而完成的hash_set(散列集合)、hash_multiset(散列多键集合)、hash_map(散列映射表)、hash_multimap(散列多键映射表)。
二 所有容器的共通能力和共通操作
(1)STL容器三个最核心的能力:
1. 所有容器提供的都是“value语意”而非“reference语意”。
容器进行元素的安插操作时,内部实施的是拷贝操作,置于容器内。因此STL容器内的每一个元素都必须能够被拷贝。
2. 总体而言,所有元素形成一个次序(order)。即你可以依次相同次序一次或多次遍历每个元素。
3. 一般而言,各项操作并非绝对安全。调用者必须确保传给操作函数的参数符号要求。违反这些需求会导致未定义的行为,通常STL不会抛出异常。
(2)容器的共通操作
- 三 容器综述
- Java 容器综述
- JAVA 容器(一)-----综述
- 常量综述(三)
- 三、设计模式综述
- 多目标跟踪 综述(三)
- 三、容器--特殊容器
- 三.容器
- 三、容器
- Java基础之容器综述篇
- 【Spring源码--IOC容器的实现】-- 综述
- 【Spring源码--IOC容器的实现】-- 综述
- 容器(三):队列容器Deque
- 初级 Java I/O 综述(三)
- 服务器技术系列综述(三)
- 服务器技术系列综述(三)
- 互联网广告系统综述三业务描述
- 互联网广告系统综述三业务描述
- 【DB】设计原则
- 用Android访问本地站点---(localhost,10.0.2.2)要区别
- [12月21日的脚本] 在会话中找出最近的邮件项并移动(VBA)
- C语言中的头文件
- C++通过DLL调用C#代码
- 三 容器综述
- [IOS] iOS开发学习的站点
- 题目1027:欧拉回路
- JS生成验证码
- H264 SPS 中 VUI 自己碰到的一些比较关键的 字段介绍。
- mini2440驱动分析之触摸屏
- Android客户端缓存机制(文字缓存和多媒体文件缓存)
- CAN总线驱动 .
- EDKII中的memset