STL之五 InputIterator ForwardIterator BidirectionalIterator RandomAccessIterator

来源:互联网 发布:陪你读书javascript 编辑:程序博客网 时间:2024/05/20 21:59

InputIterator :http://en.cppreference.com/w/cpp/concept/InputIterator

OutputIterator :http://en.cppreference.com/w/cpp/concept/OutputIterator

ForwardIterator :http://en.cppreference.com/w/cpp/concept/ForwardIterator

BidirectionalIterator :http://en.cppreference.com/w/cpp/concept/BidirectionalIterator

RandomAccessIterator :http://en.cppreference.com/w/cpp/concept/RandomAccessIterator

MSDN :http://msdn.microsoft.com/en-us/library/28f7db1d.aspx


Q1:InputIterator 与 ForwardIterator 有什么不同?

A1:InputIterator 只读,ForwardIterator 能读能写;一个InputIterator类型的迭代器的几个副本之间不是相互独立的,如果其中一个进行了++操作,那么其他几个可能就不指向原来的元素了,而 ForwardIterator 的几个副本是可以独立操作的,这就是所谓的 InputerIterator 只能用于 single-pass algorithm,而ForwardIterator 可以用于 multi-pass algorithm。但是目前为止,本人遇到的算法中用ForwardIterator而不用InputIterator都是因为需要对一个元素既能进行读操作,也能进行写操作。



0 0
原创粉丝点击