我只是意识到标准并不能保证在std::transform. 并且它不允许回调函数或函子有副作用。但同时std::for_each实际上保证了顺序。
std::transform
std::for_each
一种猜测是转换可以使用不保证顺序的高性能算法,但是 O(N) 已经是最好的算法。
那么为什么标准没有使从应用回调函数顺序的角度来看transform具有行为for_each?用户将从该保证中受益。
transform
for_each
c++ stl
c++ ×1
stl ×1