for_each简单使用【转】
原文: http://cpp.ezbty.org/content/science_doc/c%E6%A0%87%E5%87%86%E5%BA%93%EF%BC%9A%E4%BD%BF%E7%94%A8_stdfor_each 我们先来看看std::for_each最简单和直接的用法,接着关注一下std::for_each更多创造性的用法。这个简单而直接的例子首先定义一个函数对象类型,然后调用std::for_each对一个迭代器组进行遍历操作。 #include<algorithm> #include<vector> //新建一个函数对象的类型,它有一个定义好的函数操作符 struct OP { OP ( ) : s ( 0 ) { } void operator ( ) ( int & v ) { v = s ++ ; } private : int s ; } ; //初始化一个向量,它有10个整数 std :: vector < int > vec ( 10 ) ; //把向量10个整数分别设置从 0-9 std :: for_each ( vec. begin ( ) , vec. end ( ) , OP ( ) ) ; 看了这个代码大家自然地产生了一个疑问,就是只是把向量里10元素设置一下值,为什么为直接使用一个for循环,而要如此费力地使用for_each