繁体   English   中英

输入和 output 迭代器是可交换的吗?

[英]Input and output iterators are swappable?

输入迭代器Output 迭代器

  1. Swappable:这些迭代器指向的值可以交换或交换。

在这两个链接中,声明输入迭代器或 output 迭代器指向的值可以交换或交换。 我不确定它们是什么意思。 在输入迭代器的情况下,当您无法分配给它们时,您将如何更改指向的值? 在 output 迭代器的情况下,当您无法读取值时,您怎么知道要写入什么值?

还声明不能比较 output 迭代器的相等性。 为什么?

这并不是说您可以使用这些迭代器交换值,也不是说完全交换值。 或者,如果它这么说,那就错了。

可交换性是对迭代器类型的要求; 这只是迭代器的几个核心规则之一( [iterator.iterators/2.1] )。


至于比较 output 迭代器是否相等,该陈述至少部分是错误的。 Output 迭代器不需要支持相等检查,但仍然可以( [iterator.concept.output/1] )。 在他们做不到的地方,这是因为没有合乎逻辑的方法来实现它。 例如,从头到尾,一个ostream_iterator似乎很可能属于这一类,因为它“指向”哪里? 你怎么代表它?


所以该网站充其量是误导性的(最坏的情况是完全错误的),但这就是我们不从随机网站学习 C++ 的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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