C++语言程序设计 第十章C艹标准模板库 清华大学郑莉 大斗
第十章 C++标准模板库 清华大学 郑 莉 C++语言程序设计
C++语言程序设计 清华大学郏莉 主要内啥 泛型程序设计 ●与标准模板库有关的概念和术语 ●C++标准模板库中的容器 ●迭代器 标准C++库中的算法 函数对象
C++语言程序设计 清华大学 郑莉 2 主要内容 ⚫ 泛型程序设计 ⚫ 与标准模板库有关的概念和术语 ⚫ C++标准模板库中的容器 ⚫ 迭代器 ⚫ 标准C++库中的算法 ⚫ 函数对象
C++语言程序设计 清华大学郏莉 乏剋程序设计 将程序写得尽可能通用 将算法从特定的数据结构中抽象出来,成 为通用的 ●C++的模板为泛型程序设计奠定了关键的 基础 ●STL是泛型程序设计的一个范例 容器( container) 迭代器 iterator) 算法( algorithms) 函数对象( function object) 3
C++语言程序设计 清华大学 郑莉 3 泛型程序设计 ⚫ 将程序写得尽可能通用 ⚫ 将算法从特定的数据结构中抽象出来,成 为通用的 ⚫ C++的模板为泛型程序设计奠定了关键的 基础 ⚫ STL是泛型程序设计的一个范例 – 容器(container) – 迭代器(iterator) – 算法(algorithms) – 函数对象(function object)
C++语言程序设计 清华大学郑莉 命名空间( Namespace) 个命名空间将不同的标识符集合在一个 概命名作用域 ( named scope)内 为了解决命名冲突 念和术语 例如,声明一个命名空间NS: namespace Ns t class File void Fun o: 则引用标识符的方式如下, NS: File obj: NS∷FunO 没有声明命名空间的标识符都处于无名的 命名空间中
C++语言程序设计 清华大学 郑莉 4 命名空间(Namespace) ⚫ 一个命名空间将不同的标识符集合在一个 命名作用域(named scope)内 – 为了解决命名冲突 – 例如,声明一个命名空间NS: namspace NS { class File; void Fun (); } 则引用标识符的方式如下, NS:: File obj; NS:: Fun (); ⚫ 没有声明命名空间的标识符都处于无名的 命名空间中 概 念 和 术 语
C++语言程序设计 清华大学郑莉 命名空间( Namespace) ●可以用 using来指定命名空间 概念和术语 例如,经过以下声明: using NS: File: 在当前作用域中就可以直接引用Fie using namespace std 命名空间std中所有标识符都可直接引用 在新的C+标准程序库中,所有标识 符都声明在命名空间std中,头文件 都不使用扩展名
C++语言程序设计 清华大学 郑莉 5 命名空间(Namespace) ⚫ 可以用using来指定命名空间 – 例如,经过以下声明: using NS::File; 在当前作用域中就可以直接引用File – using namespace std; 命名空间std中所有标识符都可直接引用 ⚫ 在新的C++标准程序库中,所有标识 符都声明在命名空间std中,头文件 都不使用扩展名 概 念 和 术 语