《大道至简:C++ STL(标准模板库)精解》简介
《大道至简:C++ STL(标准模板库)精解》这本书是由闫常友创作的,《大道至简:C++ STL(标准模板库)精解》共有422章节
1
前言
本书详细介绍了C++标准模板库(C++ Standard Template Library,C++ STL)的所有内容。本书主要是参照ISO/IEC 14882...
2
目录
...
3
第1章 预备知识及简介
模板是C++的一个新特性。在现今的C++标准模板库中,几乎所有东西都被设计为模板形式。如果不支持模板,就无法使用标准模板库。模板是实现代码重用的一种工具,即针对...
4
1.1 基本概念
本节主要介绍C/C++语言中常用的一些基本概念。通过学习本节内容,读者应能正确使用这些概念,以便更加方便、高效地开发代码。...
5
1.1.1 何谓“命名空间”
命名空间(Namespace)是指标识符的可见范围或者有效范围。定义命名空间的目的是为了防止出现名称冲突现象。命名空间是C++中一个较新的特性。为了将多个程序员...
6
1.1.2 头文件
在上一节的例1-1中,有#include<iostream>这样的语句,其中iostream就是被include语句包含的头文件。在原来的C语言中,头文件都是以...
7
1.1.3 面向对象的程序设计
面向对象(Object Oriented,OO)是C/C++语言解决问题的一种方法。之前的程序开发是面向过程的。面向过程的程序设计主要考虑解决问题的先后顺序、措...
8
1.1.4 C++中的声明和定义
在程序开发领域,声明是指当一个计算机程序需要调用内存空间时,对内存发出的“占位”指令。定义则是指将声明的变量、函数、类等呈现或描述出来,为之提供一个意义相当的表...
9
1.1.5 最简单的C++程序
每个C++程序必须有一个main()函数。该函数中的每条语句分别实现各自的功能,序列组成main()函数的主体。例如: 若上述代码被执行,我们只需按下键盘的任...
10
1.1.6 指针
指针是C/C++语言中一个重要的概念,同时也是C/C++语言的重要特色。正确而灵活地使用指针,可以有效地表示复杂的数据结构、动态分配内存、便捷地使用字符串、方便...
11
1.1.7 函数
1.函数的概念 函数的英文单词是function(起……作用)。单词function既可以是动词,也可以是名词。作为名词时,其意义为:功能,作用,应变量,函数,...
12
1.1.8 文件
C/C++中的文件是非常重要的概念。所谓“文件”,一般是指存储在外部介质上数据的集合,并且是一组相关数据的有序集合。当被使用时,文件被调入内存中。 文件可分为两...
13
1.1.9 编译和链接
程序员使用任一编辑软件将编写好的C++程序输入计算机,并以文本文件形式保存在计算机的硬盘上。编辑的结果是建立C++源程序文件。C++程序一般使用小写英文字母,常...
14
1.1.10 程序启动和终止
对于任何C/C++程序,程序执行时总是从main()函数开始的。执行函数main()之后,依次或者顺序执行main()函数中的程序代码,实现其中各个函数的功能。...
15
1.1.11 异常处理
后续章节会详细地介绍异常处理。本小节只简单介绍异常处理的概念。 程序运行时会遇到某种错误,导致程序无法正常运行。C++的异常类为处理这种情况提供一种功能强大而灵...
16
1.1.12 预处理命令
预处理语句是由一系列和预处理相关的命令符组成的。预处理语句以“#”作为起始标志,其后紧跟预处理命令关键字,之后是空格,空格之后是预处理命令的内容。C语言提供了多...
17
1.1.13 宏
在C++源程序中,允许用一个标识符来表示一个字符串,该标识符被称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏...
18
1.2 类模板定义
本书将正式开始讲述C++STL(标准模板库)的内容。STL的一个重要特点是数据结构和算法的分离。这种分离增强了STL的通用性。 STL的另一个重要特点是它不是面...
19
1.2.1 类模板实例化
类模板仅仅是模板。“如何使用模板”涉及类模板的实例化问题。模板实例化一般指使用模板类和模板参数生成一个类声明的过程。 提示 从上述对模板实例化的概念可知,使用模...
20
1.2.2 类模板的成员函数
类模板的成员函数可以被类模板实例化产生的类所拥有。每个类模板都有自己相应的成员函数,并且这些函数可以被模板的实例调用。 若类模板的成员函数也是用模板实现的,当使...
21
1.2.3 类模板的静态成员
在C++中,类的成员变量被声明为static型就意味着它为该类的所有实例所共享,即当某个类的实例修改了该静态成员变量时,其修改值为该类的其他所有实例所见。下面详...
22
1.3 成员模板
C++STL支持“成员模板”新特性,即模板可用作结构、类或模板类的成员。在完全实现STL设计的过程中,这项特性是必须使用的。成员模板的定义一般为:任意类(可以是...
23
1.4 友元模板
友元机制允许一个类对其非公有成员的访问权授予指定的函数或类。一般友元声明以关键字friend开始。友元只能出现在类定义的内部。而友元的声明则可以出现在类中的任何...
24
1.5 函数模板
学习和使用STL的程序员或者研究人员可能更需要快速地掌握和使用STL提供的各种容器。但是,函数模板的作用极其强大,也是不可忽略的。 函数模板定义了一个无限的相关...
25
1.6 类模板的参数
前面几节的知识讲解已经涉及了模板的参数。本小节将详细地对模板参数进行阐述。模板参数可以是类型参数,也可以是常规类型参数,并且一个模板可以有多个参数。 如果是类型...
26
1.7 STL简介
本节主要讲述STL历史、STL组件、STL基本结构以及STL编程概述。STL历史可以追溯到1972年C语言在UNIX计算机上的首次使用。直到1994年,STL才...
27
1.7.1 STL历史
C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的计算机上使用。C语言由早期的汇编语言BCPL发展演变而来。随着微型计...
28
1.7.2 STL组件
STL是C++标准程序库的核心。STL内的所有组件都由模板构成,其元素可以是任意型别。程序员通过选用恰当的群集类别调用其成员函数和算法中的数据即可,但代价是ST...
29
1.7.3 STL基本结构
STL是C++通用库,由迭代器、算法、容器、仿函数、配接器和配置器(即内存配置器)组成。 1.容器 STL包含诸多容器类。容器类是可以包含其他对象的类,就像数组...
30
1.7.4 STL编程概述
STL作为C++通用库,主要由迭代器、算法、容器、仿函数、内存配置器和配接器等六大部分组成。程序员使用STL容器能够实现多种标准类型且操作便捷的容器。对于编程人...