YAD*_*DAV 3 c++ iterator stl stream
我在一篇文章中读到OutputIterator,我们只能将它取消引用为左值.我的问题是operator++将迭代器增加到一个位置.
所以,
*it++ = t
Run Code Online (Sandbox Code Playgroud)
将会
{*it = t; ++it; }
Run Code Online (Sandbox Code Playgroud)
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; }
Run Code Online (Sandbox Code Playgroud)
http://www.cplusplus.com/reference/iterator/ostream_iterator/
这表明operator++什么也没做.
取消引用输出操作符是否分配新值并将其前进一个位置?没用operator++?
如果是这样,那么我们为什么需要实施operator++呢?
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |