第十章 C++标准模板库
湖南科技大学莫尚丰
C++语言程序设计
1
主要内容
泛型程序设计
与标准模板库有关的概念和术语
C++标准模板库中的容器
迭代器
标准C++库中的算法
函数对象
2
泛型程序设计
将程序写得尽可能通用
将算法从特定的数据结构中抽象出来,成为通用的
C++的模板为泛型程序设计奠定了关键的基础
STL(Standard Template Library)是泛型程序设计的一个范例
容器(container)
迭代器(iterator)
算法(algorithms)
函数对象(function object)
3
命名空间(namespace)
一个命名空间将不同的标识符集合在一个命名作用域(named scope)内
为了解决命名冲突
例如,声明一个命名空间NS:
namespace NS {
class File;
void Fun ();
}
则引用标识符的方式如下,
NS:: File obj;
NS:: Fun ();
没有声明命名空间的标识符都处于无名的命名空间中
概念和术语
4
命名空间(续)
可以用using来指定命名空间
例如,经过以下声明:using NS::File;在当前作用域中就可以直接引用File
using namespace std;命名空间std中所有标识符都可直接引用
在新的C++标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名
概念和术语
5
容器
容器类是容纳、包含一组元素或元素集合的对象。
异类容器类与同类容器类
顺序容器与关联容器
七种基本容器:
向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)
概念和术语
6
容器的接口
通用容器运算符
==,!=,>,>=,<,<=,=
方法(函数)
迭代方法
begin(),end(),rbegin(),rend()
访问方法
size(),max_size(),swap(),empty()
7
适配器
适配器是一种接口类
为已有的类提供新的接口。
目的是简化、约束、使之安全、隐藏或者改变被修改类提供的服务集合。
三种类型的适配器:
容器适配器
用来扩展7种基本容器,它们和顺序容器相结合构成栈、队列和优先队列容器
迭代器适配器
函数对象适配器。
概念和术语
8
迭代器
迭代器是面向对象版本的指针,它们提供了访问容器、序列中每个元素的方法。
概念和术语
9
算法
C++标准模板库中包括70多个算法
其中包括查找算法,排序算法,消除算法,记数算法,比较算法,变换算法,置换算法和容器管理等等。
这些算法的一个最重要的特性就是它们的统一性,并且可以广泛用于不同的对象和内置的数据类型。
概念和术语
10
c++课件10 来自淘豆网m.daumloan.com转载请标明出处.