STL 入门学习笔记二
来源:互联网 发布:excel表格不能合计数据 编辑:程序博客网 时间:2024/04/26 23:50
继续之前的个面试问题,为什么选择list,这要求对不同容器的特性有些了解,下面列出来
关联式容器
2.1 map
2.5 set
顺序容器
2.2vector
2.3deque
2.4 list
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
容器(Containers) 容器类别(简称容器)用来管理一组元素
1. 序列式容器 Sequence containers,此乃可序(ordered)群集,其中每个元素均
有固定位置 — 取决于插入时机和地点,和元素值无关。如果你以尾附方式对
一个群集置入六个元素,它们的排列次序将和置入次序一致。STL 提供三个定
义好的序列式容器:vector, deque, list。
2. 关系型容器 Associative containers,此乃已序(sorted)群集,元素位置取决于
特定的排序准则。如果你将六个元素置入这样的群集中,它们的位置取决于元
素值,和插入次序无关。STL 提供了㆕个关系型容器:set, multiset, map,
multimap。用来管理一组元素。
迭代器(Iterators)
迭代器是一个「可巡访 STL 容器内全部或部分元素」的对象。一个迭代器用来指出容器中的一个特定位置。
所有容器类别都提供有一些成员函数,使我们得以获得迭代器并以之遍访所有元
素。这些函数中最重要的是:
begin()
传回一个迭代器,指向容器起始点,也就是第一元素(如果有的话)的位置。
end()
传回一个迭代器,指向容器结束点。结束点在最后一个元素之后,这样的迭代器又称作「逾尾(past-the-end)」迭代器。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
简单比较vector 可以当成数组使用(单向),deque是双向变长数组,STL中的list是doubly linked list链表、可以快速的插入和删除,与前面的不同其实也就是顺序存储和链式储存的不同。
set和map是关系型容器。所有标准关系型容器, 通常以平衡二元树完成。
因此你可以把 set 和 multisets 分别视为特殊的 map 和 multimaps,只不过 sets 元素
的 value 和 key 是指同一物件。因此 map 和 multimaps 拥有 set 和 multisets 的所有
能力和所有操作函数
事实上 sets 和 multisets 通常以红黑树(red-black tree)实作而成。红黑树在改变元
素数量和元素搜寻方面都很出色,它保证节点安插时最多只会作两个重新链结(relink)
动作,而且到达某一元素的最长路径深度,最多只是最短路径深度的两倍。
- STL 入门学习笔记二
- STL学习笔记(二)
- STL 入门学习笔记一
- STL学习笔记-入门概念
- STL学习笔记(二)
- STL 学习笔记 ( 二. vector )
- STL学习笔记二(仿函式)
- STL学习笔记二:模版中的几个问题
- 学习笔记(二)——STL
- C++学习笔记(三)STL简介(二)
- 《STL源码剖析》学习笔记(二)
- STL源码剖析学习笔记(二)
- STL学习笔记(二):STL对待错误的态度
- STL入门基础(二)
- Maven学习笔记 --- Maven入门笔记二
- JMS学习笔记二--入门学习
- stl学习笔记1(入门速览与迭代器)
- STL学习入门
- 查看android.jar中的xml文件
- 在Oracle中添加用户 赋权 修改密码 解锁
- java并发编程实践笔记
- js获取系统时间
- 单链表实现冒泡排序算法(C实现)
- STL 入门学习笔记二
- cdev结构体及其相关函数 【转】
- ASP.NET 2.0 中跨网页提交的三种方法
- 安装 Oracle10.2出现“all_no_orcl”错误的解决方案
- oracle导入导出
- 详解Linux开机自动启动SVN原理
- 两个listBox
- Oracle表空间详解
- 起泡排序