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