知识卡片
默认const迭代
内容
只读遍历优先使用 const_iterator,把不可经该迭代器修改元素写入类型。通用代码优先用非成员 begin、end 等入口以兼容更多容器和数组。C++11⁄14 改善了这些接口的可用性,便利性不应成为放弃常量语义的理由。
参考来源
- 位置:《Effective Modern C++》第3章《移步现代C++》,条款十三:优先考虑 const_iterator 而非 iterator(源文件:_epub-src/EPUB/text/ch004.xhtml)
- 结论依据:原文把 const_iterator 类比指向常量的指针,并推荐通用非成员迭代接口。
- 原始内容:优先考虑 const_iterator 而非 iterator 在最大程度通用的代码中,优先考虑非成员函数版本的 begin , end , rbegin 等,而非同名成员函数