Unlike the previous example of rotate() (see Section 11.8.2, page 584), here a set is used instead of a vector. This has two consequences: 1. You must use advance() (see Section 9.3.1, page 441) or next() (see Section 9.3.2, page 443) to change the value of the iterator, because bidirectional iterators do not provide operator +. 2. You should use the find() member function instead of the find() algorithm, because the for- mer has better performance. The program has the following output: 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1 8 9 1 2 3 4 5 6 7 4 5 6 7 8 9 1 2 3