我在一篇关于OutputIterator
的文章中读到,我们只能将其解引用为左值。我的问题是关于operator++
,它将迭代器增加一个位置。
*it++ = t
将{*it = t; ++it; }
https://www.sgi.com/tech/stl/OutputIterator.html 现在,我假设operator++
将以这样一种方式重载,它将使OutputIterator
增加一个位置。
ostream_iterator
也是OutputIterator
,实现了OutputIterator
的所有要求。
那么为什么operator++
在ostream_iterator
中实现如下图所示?
ostream_iterator<T,charT,traits>& operator++() { return *this; }
ostream_iterator<T,charT,traits>& operator++(int) { return *this; }
http://www.cplusplus.com/reference/iterator/ostream_iterator/显示operator++
什么也没做。
解引用输出操作符是否赋一个新值并将其移动一个位置?不使用operator++
?
如果是这样,那么为什么我们需要实现operator++
呢?
此操作符的使用是正式的。
OutputIterator
必须支持++
-操作符,无论它是否有任何影响。