access labels(访问标号)
类的成员可以定义为 private,这能够防止使用该类型的代码访问该成员。成员还可以定义为 public,这将使该整个程序中都可访问成员。
address(地址)
一个数字,通过该数字可在存储器上找到一个字节。
arithmetic types(算术类型)
表示数值即整数和浮点数的类型。浮点型值有三种类型:long double 、double和float,分别表示扩展精度值、双精度值和单精度值。一般总是使用 double 型。特别地,float只能保证六位有效数字,这对于大多数的计算来说都不够。整型包括 bool、char、wchar_t、short、int和 long。整型可以是带符号或无符号的。一般在算术计算中总是避免使用 short 和char。unsigned 可用于计数。bool 类型只有true 和false 两个值。wchar_t 类型用于扩展字符集的字符;char类型用于适合8 个位的字符,比如Latin-1 或者 ASCII。
array(数组)
存储一组可通过下标访问的未命名对象的数据结构。本章介绍了存储字符串字面值的字符数组。第四章将会更加详细地介绍数组。
byte(字节)
最小的可寻址存储单元。大多数的机器上一个字节有 8 个位(bit)。
abstract data type(抽象数据类型)
隐藏其实现的数据类型。使用抽象数据类型时,只需要了解该类型所支持的操作。
bitset
一种标准库类型,用于保存位置,并提供地各个位的测试和置位操作。 cctype header(cctype 头文件) 从 C 标准库继承而来的头文件,包含一组测试字符值的例程。
class template(类模板)
一个可创建许多潜在类类型的蓝图。使用类模板时,必须给出实际的类型和值。例如,vector 类型是保存给定类型对象的模板。创建一个 vector 对象是,必须指出这个 vector 对象所保存的元素的类型。vector<int> 保存 int 的对象,而 vector<string> 则保存 string 对象,以此类推。
container(容器)
一种类型,其对象保存一组给定类型的对象的集合。
difference_type
一种由 vector 类型定义的 signed 整型,用于存储任意两个迭代器间的
距离。
empty
由 string 类型和 vector 类型定义的成员函数。empty 返回布尔值,用于检测 string 是否有字符或 vector 是否有元素。如果 string 或 vector的 size 为 0,则返回 true,否则返回 false。
getline
string头文件中定义的函数,该函数接受一个 istream对象和一个 string对象,读取输入流直到下一个换行符,存储读入的输入流到 string 对象中,并返回 istream 对象。换行符被读入并丢弃。
high-order(高阶)
bitset 对象中索引值最大的位。
index(索引)
下标操作符所使用的值,用于表示从 string 对象或 vector 对象中获取的元素。也称“下标”。
iterator(迭代器)
用于对容器类型的元素进行检查和遍历的数据类型。
iterator arithmetic(迭代器的算术操作)
应用于一些(并非全部)迭代器类型的算术操作。迭代器对象可以加上或减去一个整型数值,结果迭代器指向处于原迭代器之前或之后若干个元素的位置。两个迭代器对象可以相减,得到的结果是它们之间的距离。迭代器算术操作只适用于指向同一容器中的元素或指向容器末端的下一元素迭代器。
low-order(低阶)
bitset 对象中索引值最小的位。
off-the-end iterator(超出末端的迭代器)
由 end 操作返回的迭代器,是一种指向容器末端之后的不存在元素的迭代器。
push_back
由 vector 类型定义的成员函数,用于把元素追加到 vector 对象的尾部。
sentinel(哨兵)
一种程序设计技术,使用一个值来控制处理过程。在本章中使用由 end操作返回的迭代器作为保护符,当处理完 vector 对象中的所有元素后,用它来停止处理 vector 中的元素。
size
由库类型 string、vector 和 bitset 定义的函数,分别用于返回此三个类型的字符个数、元素个素、二进制位的个数。string 和 vector 类的 size成员函数返回 size_type 类型的值(例如,string对象的 size 操作返回string::size_type 类型值)。bitset 对象的 size 操作返回 size_t 类型值。
size_t
在 cstddef 头文件中定义的机器相关的无符号整型,该类型足以保存最大数组的长度。在 cstddef 头文件中定义的机器相关的无符号整型,该类型足以保存最大数组的
长度。
size_type
由 string 类类型和 vector 类类型定义的类型,用以保存任意 string 对象或 vecotr 对象的长度。标准库类型将 size_type 定义为 unsigned 类型。
using declarations(using 声明)
使命名空间的名字可以直接引用。比如:
using namespace::name;
可以直接访问 name 而无须前缀 namespace::。
value initialization(值初始化)
当给定容器的长度,但没有显式提供元素的初始式时,对容器元素进行的初始化。元素被初始化为一个编译器产生的值的副本。如果容器保存内置类型变量,则元素的初始值将置为 0。如果容器用于保存类对象,则元素的初始值由类的默认构造函数产生。只有类提供了默认构造函数时,类类型的容器元素才能进行值初始化。
++ operator(++操作符)
迭代器类型定义的自增操作符,通过“加 1”移动迭代器指向下一个元素。
:: operator(::操作符)
作用域操作符。::操作符在其左操作数的作用域内找到其右操作数的名字。用于访问某个命名空间中的名字,如 std::cout,表明名字 cout 来自命名空间 std。同样地,可用来从某个类取名字,如 string::size_type,表明 size_type 是由 string 类定义的。
[] operator([]操作符)
由 string, vector 和 bitset 类型定义的重载操作符。它接受两个操作数:左操作数是对象名字,右操作数是一个索引。该操作符用于取出位置与索引相符的元素,索引计数从 0 开始,即第一个元素的索引为 0,最后一个元素的索引为 obj.size() -1。下标操作返回左值,因此可将下标操作作为赋值操作的左操作数。对下标操作的结果赋值是赋一个新值到相应的元
素。
* operator(*操作符)
迭代器类型定义了解引用操作符来返回迭代器所指向的对象。解引用返回左值,因此可将解引用操作符用作赋值操作的左操作数。对解引用操作的结果赋值是赋一个新值到相应的元素。
<< operator(<< 操作符)
标准库类型 string 和 bitset 定义了输出操作符。string 类型的输出操作符将输出 string 对象中的字符。bitset 类型的输出操作符则输出bitset 对象的位模式。
>> operator(>> 操作符)
标准库类型 string 和 bitset 定义了输入操作符。string 类型的输入操作符读入以空白字符为分隔符的字符串,并把读入的内容存储在右操作数(string对象)中。bitset 类型的输入操作符则读入一个位序列到其bitset操作数中。
C-stylestrings(C 风格字符串)
C 程序把指向以空字符结束的字符数组的指针视为字符串。在 C++ 中,字符串字面值就是 C 风格字符串。C 标准库定义了一系列处理这种字符串的库函数,C++ 中将这些标准库函数放在 cstring 头文件中。由于 C 风格字符串本质上容易出错,C++ 程序应该优先使用 C++ 标准库类 string 而少用 C 风格字符串。网络程序中大量的安全漏洞都源于与使用 C 风格字符串和数组相关的缺陷。
compiler extension(编译器扩展)
特定编译器为语言添加的特性。依赖于编译器扩展的程序很难移植到其他的编译器。
compound type(复合类型)
使用其他类型定义的类型。数组、指针和引用都是复合类型。
const void*
可以指向任意 const 类型的指针类型,参见 void *。
delete expression(delete 表达式)
delete 表达式用于释放由 new 动态分配的内存:
delete [] p;
在此表达式中,p 必须是指向动态创建的数组中第一个元素的指针,其中方括号必不可少:它告诉编译器该指针指向数组,而非单个对象。C++ 程序使用 delete 取代 C 语言的标准库函数free。
dimension(维数)
数组大小。
dynamically allocated(动态分配的)
在程序自由存储区中建立的对象。该对象一经创建就一直存在,直到显式释放为止。
free store(自由存储区)
程序用来存储动态创建对象的内存区域。
heap(堆)
自由存储区的同义词。
new expression(new 表达式)
用于分配动态内存的表达式。下面的语句分配了一个有 n 个元素的数组:
new type[n];
该数组存放 type 类型的元素。new 返回指向该数组第一个元素的指针。C++ 程序使用 new 取代 C 语言的标准库函数 malloc。
pointer(指针)
存放对象地址的对象。
pointer arithmetic(指针算术操作)
可用于指针的算术操作。允许在指针上做加上或减去整型值的操作,以获得当前指针之前或之后若干个元素处的地址。两个指针可做减法操作,得到它们之间的差值。只有当指针指向同一个数组或其超出末端的位置时,指针的算术操作才有意义。
precedence(优先级)
在复杂的表达式中,优先级确定了操作数分组的次序。
ptrdiff_t
在 cstddef 头文件中定义的与机器相关的有符号整型,该类型具有足够的大小存储两个指针的差值,这两个指针指向同一个可能的最大数组。
size_t
在 cstddef 头文件中定义的与机器相关的无符号整型,它具有足够的大小存储一个可能的最大数组。
* operator(* 操作符)
对指针进行解引用操作获得该指针所指向的对象。解引用操作符返回左值,因此可为其结果赋值,等效于为该指针所指向的特定对象赋新值。
++operator(++ 操作符)
用于指针时,自增操作符给指针“加 1”,移动指针使其指向数组的下一个元素。
[] operator([] 操作符)
下标操作符接受两个操作数:一个是指向数组元素的指针,一个是下标 n。该操作返回偏离指针当前指向 n 个位置的元素值。数组下标从 0 开始计数——数组第一个元素的下标为 0,最后一个元素的下标是数组长度减 1。下标操作返回左值,可用做赋值操作的左操作数,等效于为该下标引用的元素赋新值。
& operator(& 操作符)
取地址操作符需要一个操作数,其唯一的操作数必须是左值对象,该操作返回操作数对象在内存中的存储地址。
void*
可以指向任何非 const 对象的指针类型。void* 指针只提供有限的几种操作:可用作函数形参类型或返回类型,也可与其他指针做比较操作,但是不能进行解引用操作。