在 another question about iterators 之后我对自定义容器有一些疑问。在我的容器中,iterator
是 const_iterator
的子类,因此我可以“免费”从非 const 转换为 const。但这是否允许,或者这样的设置是否有任何缺点或不工作的情况?
最佳答案
是的,这很好。这就是 VC10 对 vector
的迭代器的实现方式。例如,是结构化的。见 _Vector_iterator
和 _Vector_const_iterator
在 <vector>
.
顺便说一句,编写迭代器很困难。值得您花时间学习和使用 boost::iterator 库。
关于c++ - 'iterator' 可以只输入子类 'const_iterator' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844466/