当我可以使用BidirectionalIterator或RandomAccessIterator实现相同功能时,为什么要使用ForwardIterator

时间:2018-11-10 15:59:39

标签: c++ c++11

使用ForwardIterator相比BidirectionalIterator或RandomAccessIterator的性能优势是什么?

1 个答案:

答案 0 :(得分:2)

限制更严格的迭代器类别通常不会带来性能优势,因为您通常会使用该术语。相反,它可以访问以其他方式无法访问的结构中存储的数据。

特别是正向迭代器,它可以用于(例如)访问存储在单链列表中的数据,而双向迭代器通常需要一个双链列表。

使用单链表比双链表可能会带来性能优势-每个节点只需要一个指针,而不是两个。每个节点的指针更少,通常可以期望在缓存中存储更多的节点,这可以通过减少对主内存的引用来提高性能(显着)。