C++语言程序设计 第十章C++标准模板库 米米
第十章 C++标准模板库 C++语言程序设计
C++语言程序设计 主要内容 泛型程序设计 。迭代器 ●顺序容器 ·关联容器 ·函数对象 ·算法 深度探索 日
C++语言程序设计 2 主要内容 泛型程序设计 迭代器 顺序容器 关联容器 函数对象 算法 深度探索
C++语言程序设计 泛型程序设计 泛 ● 编写不依赖于具体数据类型的程序 型 ● 将算法从特定的数据结构中抽象出来,成 为通用的 ● C+的模板为泛型程序设计奠定了关键的 序 基础 ● 几个术语 计 概念(concept) 用来界定具备一定功能的数 据类型,如支持<’运算符” 的数据类型构 成Comparable这一概念; 模型(model): 符合一个概念的数据类型称 为该概念的模型, 如int型是Comparable概然的修 模型
C++语言程序设计 3 泛型程序设计 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成 为通用的 C++的模板为泛型程序设计奠定了关键的 基础 几个术语 – 概念(concept):用来界定具备一定功能的数 据类型,如“支持‘<’运算符”的数据类型构 成Comparable这一概念; – 模型(model):符合一个概念的数据类型称 为该概念的模型,如int型是Comparable概念的 模型。 泛型程序设计
C++语言程序设计 STL程序实例(例10-1) 泛 //包含的头文件略去… using namespace std; 型 int main(){ 程 const int N=5; 容器 序 vector<int>s(N); 设 for (int i 0;i N;i++) 迭代器 函数对象 cin >s[i]; 计 transform(s.begin(),s.end(), ostream_iterator<int>(cout, negate<int>()) 算法 cout <endl; return 0;
C++语言程序设计 STL程序实例(例10-1) 4 //包含的头文件略去…… using namespace std; int main() { const int N = 5; vector<int> s(N); for (int i = 0; i < N; i++) cin >> s[i]; transform(s.begin(), s.end(), ostream_iterator<int>(cout, " "), negate<int>()); cout << endl; return 0; } 容器 函数对象 算法 迭代器 泛型程序设计
C++语言程序设计 STL的组成部分 泛 ●STL是泛型程序设计的一个范例 容器(container) 型 迭代器(iterator) 程 算法(algorithms) 序 函数对象(function object) 设 迭代器 容器 算法 迭代器 计 (iterator (algorithm) (iterator 容器 (container) (container) 函数对象 (function object)
C++语言程序设计 STL的组成部分 STL是泛型程序设计的一个范例 – 容器(container) – 迭代器(iterator) – 算法(algorithms) – 函数对象(function object) 5 泛型程序设计 容器 (container) 算法 (algorithm) 容器 (container) 迭代器 (iterator) 函数对象 (function object) 迭代器 (iterator)