<分区>
在实现诸如 iterator
和 const_iterator
或类似的类对时,避免代码重复的最佳实践是什么?
- 人们是否通常使用大量 const_casts 根据 const_iterator 来实现迭代器?
- 是否使用了某种特征类并最终将 iterator 和 const_iterator 定义为通用模板的不同实例?
这似乎是一个足够普遍的问题,需要一个规范的解决方案,但我没有找到任何专门针对该问题的文章。
<分区>
在实现诸如 iterator
和 const_iterator
或类似的类对时,避免代码重复的最佳实践是什么?
这似乎是一个足够普遍的问题,需要一个规范的解决方案,但我没有找到任何专门针对该问题的文章。
最佳答案
我没有任何实现迭代器的经验,尽管我认为这与其他项目类似。重构公共(public)代码等
查看GNU libstdc++'s实现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++ - 在实现 iterator 和 const_iterator 类时避免代码重复的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488402/