By using algorithms instead of for-loops, the intention of each operation is clearly indicated by the name and, more importantly, algorithms are very well-documented. The reader of a function does not need to inspect every for-loop in order to determine exactly what it does. It might not be obvious looking at a single algorithm, but when several algorithms are followed upon, as in the next example, the advantages are obvious. Note that when reading for-loops, you have to inspect every detail, whereas STL algorithms immediately show how the data is being used.
Also, from an optimization point of view, the algorithms in the example can be easily replaced by parallelized equivalents (this will be further explained ...