我目前正在为内部数据结构实现一个迭代器,并看看QVector如何实现其迭代器。我不明白为什么QTypedArrayData :: iterator实现了它的++和 - 运算符,如:
T *i;
inline iterator &operator++() { ++i; return *this; }
inline iterator &operator--() { i--; return *this; }
我不明白的是两者之间的差异:为什么它使用postfix减量运算符?
感谢您的任何澄清!
答案 0 :(得分:2)
你缺乏理解意味着期望两者之间存在任何实际差异,而且编码是故意以这种方式完成的。这种期望是合理的,但不正确。你可以用任何一种方式编写这些操作,它们的工作方式也是一样的。 可能在非POD类型上很重要,复制/移动成本很高,但这不是这种情况。并且习惯于在15-20年前对那个时代的糟糕编译器产生影响。值得庆幸的是,我们不再需要处理VS6了:)