繁体   English   中英

OutputIterator上的前/后增量运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM