读者可能有这样的经历,自己编写了动态数组类、链表类、集合类和映射类等程序,然后小心地维护着。其实 STL 提供了专家级的几乎我们所需要的各种容器,功能更好,效率更高,复用性更强,所以开发应用系统应该首选 STL 容器类,摒弃自己的容器类,尽管它可能花费了你很多的开发时间。
本章将介绍 STL 中的通用容器,包括 vector、deque、list、queue和stack、priority_queue、bitset、set和multiset、map和multimap等等。...
分类:
编程语言 时间:
2016-06-06 01:14:17
阅读次数:
231
原文地址:http://www.cnblogs.com/duzouzhe/archive/2010/01/12/1645191.html STL的容器可以分为以下几个大类: 一:序列容器 : vector, list, deque, string. 二 : 关联容器 : set, multiset, ...
分类:
其他好文 时间:
2016-06-05 08:40:11
阅读次数:
122
set的特性是所有元素都会根据键值自动排序,set的元素不像map那样同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值。Set不允许两个元素拥有相同的键值。不能通过迭代器修改set元素的值。
multiset和set的唯一区别在于multiset允许键值重复。
我们采用红黑树作为set和multiset的底层数据结构,set...
分类:
其他好文 时间:
2016-05-30 15:06:56
阅读次数:
256
1、Set (1)定义 set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 set,顾名思义是“集合”的意思,用来存储同一数据类型的数据类型。 在set中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交(set_inters ...
分类:
其他好文 时间:
2016-05-23 13:07:31
阅读次数:
119
1、分类 我们常用到的STL容器有vector、list、deque、map、multimap、set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我们了解清楚。 2、Verctor 优点: 典型的序列容器,C++标准严格要求次容器的实现内 ...
分类:
其他好文 时间:
2016-05-23 13:07:06
阅读次数:
171
用set维护每个联通块里的最值,multiset维护所有块里的最值,并查集维护连通性,然后随便搞搞就行了,合并时候采用启发式合并。复杂度O(nlognlogn),大概勉强过的程度,反正跑的很慢就是了。 代码 ...
分类:
其他好文 时间:
2016-05-13 12:14:23
阅读次数:
151
顺序性容器:
vector 从后面快速的插入和删除,直接访问任何元素(随机访问)
deque 从前面或后面快速的插入和删除,直接访问任何元素(随机访问)
list 双链表,从任何地方插入和删除
关联容器:
set 快速查找,不允许重复值。
multiset 快速查找,允许重复值。
map 一对多映射,基于关键字快速查找,不允许重复值。
multimap 一对多映射,基于关键字快速查找,允许重复值。...
分类:
编程语言 时间:
2016-05-13 00:20:42
阅读次数:
173
关联容器都是排好序的,有以下四种: 1)set: 排好序的集合,不允许有相同的元素 2)multiset: 排好序的集合,允许有相同元素 3)map :map中的每个元素都有关键字和值两部分,容器中的元素是按关键字排序的。不允许有多个元素关键字相同 4)multimap: 与map类似,可以允许多个 ...
分类:
其他好文 时间:
2016-05-09 12:24:10
阅读次数:
143
STL 实践与分析
-- 容器的综合应用:文本查询程序
引言:
本章中最重点的实例,因为不需要用到 multiset 与 multimap 的内容,于是将这一小节提到了前面,通过这个实例程序,大师分析问题的智慧,大师的编程风格,大师对程序的控制能力,由此可见一斑。因此,我对这一小节的内容几乎不做修改,或只做很小的更改(因为有些东西不同人有不同的理解),搬出来,以供大家仔细...
分类:
编程语言 时间:
2016-05-07 11:09:31
阅读次数:
234
STL 实践与分析
--multimap 与 multiset
引言:
map 和 set 容器中,一个键只能对应一个实例,而 multiset 和 multimap 类型则允许一个键对应多个实例。
multimap 与 multiset 类型与相应的单元素版本具有相同的头文件定义:分别是map 与 set 头文件。
multimap/mult...
分类:
编程语言 时间:
2016-05-07 11:09:10
阅读次数:
151