c++ - 当我可以使用 BidirectionalIterator 或 RandomAccessIterator 实现相同的目标时,为什么要使用 ForwardIterator
问题描述
与 BidirectionalIterator 或 RandomAccessIterator 相比,使用 ForwardIterator 有哪些性能优势?
解决方案
更受限制的迭代器类别通常不会带来性能优势,因为您通常会使用该术语。相反,它可以访问存储在其他方式无法访问的结构中的数据。
具体来看前向迭代器,它可用于(例如)访问存储在单链表中的数据,其中双向迭代器通常需要双链表。
使用单链表可能会比双链表带来性能优势——每个节点只需要一个指针而不是两个。每个节点的指针越少,您通常可以期望在缓存中存储更多的节点,这可以通过减少对主内存的引用来提高性能(显着)。
推荐阅读
- python - 有没有办法用文本实时更新 Tkinter 画布?
- clojure - peek 不支持某些序列
- unix - UNIX - 如何在 UNIX 中交换特定列下的字符
- html - 增加垂直条形图中特定条形的高度
- r - 如何自动计算列表中不同字符串的出现次数
- java - Eclipse 错误:资源“/项目名称”不存在
- spring - 如何使用 Spring Data MongoDB 在查询中定位数组的最后一项?
- authorization - 授权在招摇球衣中不起作用,授权复选框未显示
- vue.js - 输入元素中的vuejs svg元素对点击事件没有反应
- javascript - Vanilla JS 如何将 json 解析为 html