在实现迭代器和const_iterator类时避免代码重复的最佳实践
Best practice for avoiding code duplication while implementing iterator and const_iterator classes
在实现诸如iterator
和const_iterator
之类的类对时,避免代码重复的最佳实践是什么?
- 一个人通常是用const_iterator来实现迭代器吗?是否使用某种trait类,最终将iterator和const_iterator定义为公共模板的不同实例?
这似乎是一个足够普遍的问题,有一个规范的解决方案,但我没有找到任何专门的文章。
我没有任何实现迭代器的经验,尽管我认为这与其他项目类似。重构公共代码,等等
看GNU libstdc++对std::vector::iterator
的实现
#include <bits/stl_iterator_base_funcs.h>
// ...
template ... class vector : ... {
typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, vector> const_iterator;
};
相关文章:
- 在c代码之间共享数据的最佳方式
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 在nodejs中使用本机代码的最佳方法是什么?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 分离类所有权和使用,生成最佳(快速)代码
- C++:销毁此代码的最佳方法是什么?
- 最佳C 11测量嵌入式系统代码执行时间的方法
- 最佳实践:使用随机数生成器的测试代码
- 将使用双向popen()的C++代码移植到POSIX的最佳方式
- iOS和Android之间共享代码的最佳方式
- RVO,移动语义和争取最佳代码
- 将C++代码与Python接口的最佳方式是什么
- 将浮点数组转换为整数的最佳方式.[替换x64的asm代码]
- 分离配置代码和算法代码的最佳做法
- 在同时为 C++03 和 C++14 的代码中进行简单随机洗牌的最佳实践是什么?
- 记录C++代码的最佳位置
- 在我的解释器上为脚本代码实现语法检查器的最佳方式是什么
- 组织X11和Win32简单游戏代码的最佳方式是什么
- 从非托管代码调用托管.NET代码的最佳方式
- 在实现迭代器和const_iterator类时避免代码重复的最佳实践