Tag: const iterator

const_iterator是否更快?

我们的编码指南更喜欢const_iterator ,因为它们比正常的iterator要快一些。 当你使用const_iterator时,编译器看起来好像优化了代码。 这真的是对的吗? 如果是的话,真正发生在内部的是什么让const_iterator更快? 编辑:我写了小testing检查const_iterator与iterator ,发现不同的结果: 对于迭代10,000个对象, const_terator要花费几毫秒(大约16毫秒)。 但并不总是 。 有两个迭代是平等的。

cbegin / cend背后的原因是什么?

我想知道为什么cbegin和cbegin是在C ++ 11中引入的? 什么情况下调用这些方法与const的重载begin和end什么不同?

如何正确地实现自定义迭代器和const_iterator?

我有一个自定义的容器类,我想写的iterator和const_iterator类。 我从来没有这样做,我没有find一个合适的方法。 关于迭代器创build的准则是什么?我应该注意什么? 我也想避免代码重复(我觉得const_iterator和iterator共享很多东西;一个子类应该是另一个?)。 脚注:我非常确定,Boost有一些可以缓解这个问题的方法,但是由于许多愚蠢的原因,我无法在这里使用它。

如何实现一个STL风格的迭代器,并避免常见的陷阱?

我做了一个集合,我想提供一个STL风格的随机访问迭代器。 我正在寻找一个迭代器的示例实现,但我没有find任何。 我知道[]和*运算符需要const重载。 迭代器对STL风格有什么要求,还有什么其他的陷阱可以避免(如果有的话)? 额外的上下文:这是一个图书馆,我不想引入任何依赖它,除非我真的需要。 我写我自己的集合,以提供相同的编译器之间的C + + 03和C + + 11之间的二进制兼容性(所以没有STL可能会中断)。