The STL provides an algorithm called next_permutation that takes in a range of elements, then rearranges them to the next lexicographically higher permutation. For example, 1 2 3 4 becomes 1 2 4 3, or 3 4 2 1 becomes 4 1 2 3. Write a function NextPermutation that takes in an STL vector and produces the next permutation of the sequence. Your function should return true if a next permutation was available and false otherwise. That way, you can visit all permutations by writing do { ... process current permutation ... } while (NextPermutation(myVector));