输入和输出迭代器是可交换的



输入迭代器输出迭代器

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

在这两个链接中,声明输入迭代器或输出迭代器指向的值可以交换或交换。我不知道他们是什么意思。在输入迭代器的情况下,当不能为其赋值时,如何更改所指向的值?在输出迭代器的情况下,当你不能读取值时,你怎么知道该写什么值?

此外还指出,不能对输出迭代器进行相等性比较。为什么?

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

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


至于比较输出迭代器是否相等,该语句至少部分为false。输出迭代器不需要来支持相等性检查,但仍然可以([iterator.concept.output/1](。如果他们做不到,那是因为没有合乎逻辑的方法来实现这一点。例如,在我脑海中,ostream_iterator似乎很可能属于这一类,因为它"指向"哪里?你如何表示这一点?


所以网站往好里说是误导性的(往坏里说是完全错误的(,但这就是为什么我们不从随机网站学习C++。

最新更新