August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
一个vector“知道”它的大小,所以可以如下打印一个vector的所有元素:
函数调用v.size()返回vector v的元素个数。一般地,v.size()可让我们能访问一个vector的元素,而不会意外越界。Vector v的元素范围是[0:v.size()),这是数学中的半开序列的记号。v的第一个元素是v[0],v的最后一个元素是v[v.size()-1]。若v.size()==0,则v没有元素,是一个空vector。这种半开序列的记号在C++和C++标准库中广泛使用(12.3节,15.3节)。
语言本身利用半开序列概念可提供一个简洁的遍历序列元素(比如vector元素)的方法。例如:
这被称为是“范围for循环”,这里“范围”是指“元素序列”。可将for(int x:v)理解为“对每个v的整型元素x”,该循环的含义等价于对下标[0:v.size())进行循环。“范围for循环”常用于遍历序列的所有元素且每次只访问一个元素的情形。对于更复杂的循环,如每隔3个访问vector的元素、只访问vector的后半部分或比较两个vector的元素等,通常使用更复杂、通用的for语句效果会更好(4.4.2.3节)。