transform 与 for_each均可接受以函数作为算法的参数。
for_each()接受意向操作,该操作可变动其参数。因此该参数必须以by reference方式传递。
</pre><pre name="code" class="cpp">void square (int& elem) //call-by-reference
{
elem = elem * elem;
}
for_each (coll.begin(),coll.end(),square);
</pre><p>transform()运用某项操作,该操作返回被改动后的参数。它可以被用来将结果赋值给原元素。</p><p><pre name="code" class="cpp">int square (int elem) // call-by-value
{
return elem*elem;
}
transform (coll.begin(),coll.end(),coll.begin(),square);