August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
除非有非常充分的理由,否则我们应该按标准库容器(参见第11章)的风格来设计容器。特别是,通过将容器实现为句柄并为其实现恰当的基本操作来令它是资源安全的(参见5.1.1节和5.2节)。
标准库容器都知道自己的元素数目,我们可以调用size()来获得这个信息。例如:
但是,标准库算法(参见第12章)并不是使用从0到size()的下标来遍历容器,而是依赖于序列(sequence)的概念,一个序列是用一对迭代器(iterator)框定的:
在这里,c.begin()是一个指向c的首元素的迭代器,而c.end()指向c的尾后元素。类似于指针,迭代器支持用++操作移动到下一元素,以及用*访问指向的元素的值。这种迭代器模型(iterator model)(参见12.3节),具有非常高的通用性和效率。迭代器被用来将序列传递给标准库算法。例如:
更多细节和更多容器操作的介绍请见第11章、第12章。
另一种隐式使用元素数目的方法是范围for循环:
这段代码其实隐式使用了c.begin()和c.end(),它大致等价于显式使用迭代器的循环。 ...
Read now
Unlock full access