我正在努力理解C++中的InputIterator和OutputIterator是什么。 我一直认为我所知道的Input和Output的定义也适用于迭代器,但现在看来事实并非如此。 Input意味着“放入某物”,意味着您可以向迭代器写入内容。 Output意味着“输出到某处”,通常意味着将内容写入屏幕或变量中。 然而,对于迭代器,InputIterator用于只读访问元素序列,这似乎应该被称为“Output”,因为您可以使用此类型的迭代器将std :: vector 的元素写入std :: cout等输出流。反之,OutputIterator是用于只写访问的。 我想知道是否有人能够合理地解释这种奇怪的迭代器类型命名?