首页 > 解决方案 > 当我可以使用 BidirectionalIterator 或 RandomAccessIterator 实现相同的目标时,为什么要使用 ForwardIterator

问题描述

与 BidirectionalIterator 或 RandomAccessIterator 相比,使用 ForwardIterator 有哪些性能优势?

标签: c++c++11

解决方案


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

具体来看前向迭代器,它可用于(例如)访问存储在单链表中的数据,其中双向迭代器通常需要双链表。

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


推荐阅读