
数据结构与算法实习 补充2:C++STL 北京大学信息科学技术学院 张铭、郝丹 2011年8月
数据结构与算法实习 ——补充2:C++ STL 北京大学信息科学技术学院 张 铭、郝 丹 2011年8月

大家对于STL的问题 STL内容太多 各种ACM算法STL类库接口 STL不熟悉,查错能力太差 〉希望将STL等面向对象内容重新过一遍,尤其是ACM 题目中用得多的 STL的工具太多,STL记不住 STL无语
大家对于STL的问题 STL内容太多 各种ACM算法STL类库接口 STL不熟悉,查错能力太差 希望将STL等面向对象内容重新过一遍,尤其是ACM 题目中用得多的 STL的工具太多,STL记不住 STL无语

C++ STL 简介 容 迭代器 算法
C++ STL 简介 容器 迭代器 算法

STL简介 丶STL( Standard Template library,标准模板库)是 惠普实验室开发的一系列软件的统称。它是由 Alexander stepanov、 Meng lee和 David musser在 惠普实验室工作时所开发出来的。现在虽说它主要出 现在C++中,但在被引入C++之前该技术就已经存在了 很长的一段时间
STL简介 STL(Standard Template Library,标准模板库)是 惠普实验室开发的一系列软件的统称。它是由 Alexander Stepanov、Meng Lee和David R Musser在 惠普实验室工作时所开发出来的。现在虽说它主要出 现在C++中,但在被引入C++之前该技术就已经存在了 很长的一段时间

STL历史 1971: David r. Musser开始倡导 Generic Programming概念。 1979: Alexander stepanov创造STL 1987:Alex和 Musser开发出一套 Ada library 1992: Meng lee加入称为另一位主要贡献者 1993/11:Aex于ANSI/IS0C++会议展示 199夏:STL被纳入C++标准
STL历史 1971 : David R. Musser 开始倡导 Generic Programming 概念。 1979 : Alexander Stepanov 创造 STL 1987 : Alex 和 Musser 开发出一套 Ada library 1992 : Meng Lee 加入称为另一位主要贡献者 1993/11 : Alex 于 ANSI/ISO C++ 会议展示 1994 夏 : STL 被纳入 C++标准

工程背景 STL是一个高效的C+程序库 被容纳于C艹标准程序库(C+← Standard library)中, 是ANSI/IS0C++标准中最新的也是极具革命性的一部分 包含了诸多在计算机科学领域里常用的基本数据结构和 基本算法。为广大C+程序员们提供了一个可扩展的应用 框架,高度体现了软件的可复用性
工程背景 STL是一个高效的C++程序库 被容纳于C++标准程序库(C++ Standard Library)中, 是ANSI/ISO C++标准中最新的也是极具革命性的一部分。 包含了诸多在计算机科学领域里常用的基本数据结构和 基本算法。为广大C++程序员们提供了一个可扩展的应用 框架,高度体现了软件的可复用性

STL代码分类 STL的代码从广义上讲分为三类: container(容器) n terator(迭代器) algorithm(算法) 这相比于传统的由函数和类成的库来说提供了更好 的代码重用机会 在C++标准中,STL被组织为下面的13个头文件: 、、、、、、和
STL代码分类 STL的代码从广义上讲分为三类: container(容器) iterator(迭代器) algorithm(算法) 几乎所有的代码都采用了模板类和模版函数的方式, 这相比于传统的由函数和类组成的库来说提供了更好 的代码重用机会。 在C++标准中,STL被组织为下面的13个头文件: 、、、、 、、、、、 、、和

STL容器 经典的数据结构数量有限,但是我们常常重复着一些 为了实现向量、链表等结构而编写的代码,这些代码 都士分相似,只是为了适应不同数据的变化而在细节 有所出入。 STL容器就为我们提供了这样的方便,它允许我们重 复利用已有的实现构造自己的特定类型下的数据 结构,通过设置一些模版类,ST容器对最常用的数 据结构提供了支持,这些模板的参数允许我们指定容 器中元素的数据类型,可以将我们许多重复而乏味的 工作简化。 容器部分主要由头文件 Vector>, , deque>, ,, stack>FH queue>组成
STL容器 经典的数据结构数量有限,但是我们常常重复着一些 为了实现向量、链表等结构而编写的代码,这些代码 都十分相似,只是为了适应不同数据的变化而在细节 上有所出入。 STL容器就为我们提供了这样的方便,它允许我们重 复利用已有的实现构造自己的特定类型下的数据 结构,通过设置一些模版类,STL容器对最常用的数 据结构提供了支持,这些模板的参数允许我们指定容 器中元素的数据类型,可以将我们许多重复而乏味的 工作简化。 容器部分主要由头文件 ,,,,,和 组成

STL容器组成 〉向量( vector)连续存储的元素 双队列( deque)连续存储的指向不同元素的指针所组成的数组 多重集合( multiset)允许存在两个次序相等的元素的集合 栈( stack)后进先出的值的排列 队列( queue)先进先出的执的排列 多重映射( multimap)允许键对有相等的次序的映射
向量(vector) 连续存储的元素 列表(list) 由节点组成的双向链表,每个结点包含着一个元素 双队列(deque)连续存储的指向不同元素的指针所组成的数组 集合(set) 由节点组成的红黑树,每个节点都包含着一个元素,节点之间 以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次 序 多重集合(multiset) 允许存在两个次序相等的元素的集合 栈(stack) 后进先出的值的排列 队列(queue) 先进先出的执的排列 优先队列(priority_queue) 元素的次序是由作用于所存储的值对上的某 种谓词决定的的一种队列 映射(map) 由{键,值}对组成的集合,以某种作用于键对上的谓词排列 多重映射(multimap) 允许键对有相等的次序的映射 STL容器组成

STL中的容器 顺序容器 vector、 deque、list 非标准的顺序容器: slist、rope 关联容器 set、 multiset、map、 mul timap 非标准的关联容器: hash set、 hash multiset、 hash map、 hash multimap
STL中的容器 顺序容器 vector、deque、list 非标准的顺序容器: slist、rope 关联容器 set、multiset、map、multimap 非标准的关联容器: hash_set、hash_multiset、hash_map、 hash_multimap