• copy() iterates forward through the sequence, whereas copy_backward() iterates backward. This difference matters only if the source and destination ranges overlap. – To copy a subrange to the front, use copy(). Thus, for copy(), destBeg should have a position in front of sourceBeg. – To copy a subrange to the back, use copy_backward(). Thus, for copy_backward(), destEnd should have a position after sourceEnd. So, whenever the third argument is an element of the source range specified by the first two arguments, use the other algorithm. Note that switching to the other algorithm means that you switch from passing the beginning of the destination range to passing the end. See page 559 for an example that demonstrates the differences