这两者在 STL 内部的实现方面有什么区别?
性能方面有什么区别?
我想当我们以“只读方式”遍历向量时,我们更喜欢const_iterator
, right?
谢谢。
没有性能差异。
A const_iterator
是一个指向 const 值的迭代器(就像const T*
指针);取消引用它会返回对常量值的引用(const T&
)并防止修改引用值:它强制const-正确性 http://en.wikipedia.org/wiki/Const-correctness.
当你对容器有一个const引用时,你只能得到一个const_iterator
.
Edited:我提到过“const_iterator
返回常量指针”,这是不准确的,感谢布兰登指出。
Edit:对于 COW 对象,获取非常量迭代器(或取消引用它)可能会触发复制。 (一些过时且现在不允许的实现std::string
使用牛。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)