# Iterators

Iterators

1.Input Iterators

1)prefix++ and postfix++
2)operator!=
3)dereference* and only support read, not support write
4) operator ==
see in msdn
template< typename InputIterator > find(....)表明find算法需要Input Iterator。
see below:
template< typename T, typename InputIterator >
InputIterator find( InputIterator first, InputIterator last, const T& value )
{
while ( first != last && *first !=value )
{
++first ;
}
return first ;
}

2.Output Iterators

1)perfix++ and postfix++
2)dereference*, only support write
see below:
template< typename InputIterator, typename OutputIterator >
OutputIterator copy( InputIterator first, InputIterator last, OutputIterator result )
{
while ( first != last )
{
*result = *first ;
++first ;
++result ;
}
return result ;
}

3.Forward Iterators

multipass algorithm中。
see below:
template< typename ForwardIterator, typename T >
void replace< ForwardIterator first, ForwardIterator last, const T& x, const T& y )
{
while ( first != last )
{
if ( *first == x )
*first = y ;
++first ;
}
}

4.Bidirectional Iterators

such algorithm reverse require Bidirectional Iterators

5.Random access Iterators

1)r+n和r-n
2)r[n]，即*(r+n)
3)双向跳跃，即r+=n和r-=n
4)operator- with random access iterator，即r-s，得到一整数值
5)operator comparisons between random access iterator，即r<s，r>s，r<=s，r>=s，得到一bool值
vector、deque的iterator满足以上这些要求。

6.Insert Iterator
1)back_insert_iterator<Container> 利用push_back成员函数
2)front_insert_iterator<Container> 利用push_front成员函数
3)insert_iterator<Container> 利用insert成员函数

template< typename Container>
inline back_insert_iterator<Container> back_inserter(Container& x)
{
return back_insert_iterator<Container>(x) ;
}

contain.push_back(value) ;

7.istream_iterator和ostream_iterator

• 本文已收录于以下专栏：

## C++ 迭代器（Iterators）

• cuiyifang
• 2012年09月05日 23:03
• 1033

## Cocos2d-x Vector——vector iterators incompatible

Cocos2d-x Vector —— vector iterators incompatible
• lx417147512
• 2015年07月20日 15:11
• 1599

## "vector iterators incompatible"及一些感想

• crazygougou
• 2013年07月20日 13:20
• 1479

## vector iterators incompatible问题

• pipi0714
• 2014年11月14日 09:23
• 1478

## 关于list iterators incompatible/vector iterators incompatible 报错总结

• gggg_ggg
• 2015年02月06日 10:27
• 2010

## Guava学习之Iterators

Iterators类提供了返回Iterator类型的对象或者对Iterator类型对象操作的方法。除了特别的说明，Iterators类中所有的方法都在Iterables类中有相应的基于Iterable...
• w397090770
• 2013年09月11日 23:52
• 2714

## 运行出错： map/set iterators incompatible

• wangjianfeiwuhao
• 2012年03月06日 22:21
• 4688

## C++/CLI中的Checked Iterators

The following symbols are for use with the checked iterators feature._SECURE_SCL If defined as 1, un...
• bz201
• 2006年01月10日 21:38
• 2971

## 迭代器报“vector iterators incompatible”错的几种可能

• qq1184810369
• 2013年10月10日 14:20
• 3401

## include\\xtree Line:304 Expression: map/set iterators incompatible

• dragoo1
• 2017年01月17日 21:32
• 506

举报原因： 您举报文章：Iterators 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)