OutputIterator上的前后递增操作符



我在一篇关于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必须支持++ -操作符,无论它是否有任何影响。

相关内容

  • 没有找到相关文章

最新更新