2015-09-09 74 views

回答

5

沒有必要轉換,因爲每一個隨機訪問迭代器已經輸入迭代器。

隨機訪問迭代器和輸入迭代不種,但一些概念。由於隨機訪問迭代器的要求比輸入迭代器的要求更嚴格,因此我的第一個句子成立。

也許在更多的初學者友好相處同樣的事情:如果你想傳遞一個「汽車只有」你的車籤,你不需要做什麼特別的,因爲你的車已經是車輛。與迭代器概念相同。

該行的底部:您可以將std::vector::begin的返回值傳遞給std::find,這樣就沒有問題或陷阱。

+0

具體地說,'InputIterator'是支持操作者''++和'運算符*'用於讀取的類型。 'std :: vector :: iterator'支持'operator +'用於隨機訪問(跳過元素),'operator *'用於寫入。 – MSalters

+0

隨機訪問迭代器是否也是OutputIterator?由於在複製示例中的第三個參數應該是一個輸出迭代器,但他們一般不發送一個隨機訪問迭代http://www.cplusplus.com/reference/algorithm/copy/ –

+0

@ThomasLee,只有當你可以通過他們寫。所以'std :: vector :: const_iterator'不是輸出迭代器,而是'std :: vector :: iterator'。所以只要你使用的'vector'不是'const',你可以使用'std :: vector :: begin',只要它足夠大就可以存儲數據。 [詳細](http://en.cppreference.com/w/cpp/iterator)。 –

相關問題