ein*_*ica -1 c++ iterator idiomatic
我正在为一个基于索引的类实现一个迭代器.有一个最大有效值; 我的问题是当客户端代码使迭代器超出我的end()值时该怎么做:
operator++()经常检查我没有结束?,或operator*()经常检查我没有超过结束,而迭代器可以(无用)提前或移动到最后?请解决一个非调试设置,在这个设置中我无法确定愚蠢的开发人员不会尝试在结束之前推进他们的指针.
这并不重要.
要符合STL约定,您需要一个begin()方法,它返回一个迭代器到集合的开头,以及一个end()方法,它将迭代器返回到最后一个元素之后.所以推进到end()和比较相等是明确的.然而,超越end()的进展并没有明确定义.最好抛出错误,但不是必需的,特别是如果涉及其他冗余检查.如果人们没有正确使用迭代器,则不对任何错误负责.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |