August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
标准库提供了一个名为list的双向链表:
如果希望在一个序列中添加、删除元素而无须移动其他元素,则应使用list。对电话簿应用而言,插入和删除操作可能很频繁,因此list可能适合保存电话簿。例如:
当我们使用一个链表时,通常并不是想要像使用向量那样使用它,即,不会用下标操作访问链表元素,而是想进行“在链表中搜索具有给定值的元素”这类操作。为了完成这样的操作,我们可以利用“list是序列”这样的事实(如第12章所述):
这段代码从链表头开始搜索s,直至找到s或到达phone_book的末尾。
我们有时需要在list中定位一个元素。例如,我们可能想删除这个元素或是在这个元素之前插入一个新元素。为此,我们需要使用迭代器(iterator):一个list迭代器指向list中的一个元素,可用来遍历(iterate through)list(因此得名)。每个标准库容器都提供begin()和end()函数,分别返回一个指向首元素的迭代器和一个指向尾后位置的迭代器(参见第12章)。我们可以改写函数get_number(),显式使用迭代器遍历list,这个版本显然不那么优雅: ...
Read now
Unlock full access