[英]pre/post increment operator on OutputIterator
我在一篇关于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
必须支持++
OutputIterator
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.