2016-12-01 33 views

回答

0

所有標準容器至少支持前向迭代器類型。如果是這種情況,那麼對輸入和輸出迭代器的需求是什麼?

這些東西是正交的。 A 轉發迭代器將迭代器類型限制爲應用於其的某些操作。

輸入輸出迭代器被用作複製和轉換操作參數應用到容器(和導致相應輸出容器)。它們可以是轉發迭代器或允許進行必要操作的其他類型。

+0

好吧,你是對的,但我的問題是有任何cotainer哪個返回輸入或輸出迭代器?如果我使用矢量副本,我傳遞的是random_access_iterator(儘管它具有輸入或輸出操作符的所有功能)。 – user1438832

+0

@ user1438832我仍然沒有得到你的關注。一個容器可以讓你獲得_iterator_。如果這些用於輸入或輸出涉及到使用的轉換功能。 –

2

流迭代器是純粹的輸入或輸出迭代器。

+0

謝謝,現在我明白了。 – user1438832

1

算法對迭代器描繪的值序列進行操作;這是STL的關鍵抽象。算法不關心迭代器來自哪裏;他們只關心爲迭代器定義的操作。

容器是一種管理值序列以提供迭代器的方法,但它們不是唯一的方法。特別是,文件操作通常不是使用容器完成的,而是通過迭代器(例如std::istream_iterator(輸入迭代器)和std::ostream_iterator(輸出迭代器))完成的。