Ste*_*sop 14
他们已经为你想到了这个:
#include <algorithm>
int ra[6] = { 1, 2, 3, 4, 5, 6 };
do {
    // whatever
} while (std::next_permutation(ra, ra+6));
请注意,元素必须以递增的顺序开始(通过运算符<进行比较),否则循环将在您看到每个排列之前终止.有关详细信息,请参见http://en.cppreference.com/w/cpp/algorithm/next_permutation.
它可能无法提供最快的运行时间,因为在每一步都必须检查数组以确定要更改的内容.但它在程序员工作中肯定是最有效的,并且在不知道编译器和平台的情况下,无论如何都不可能微观优化嵌套循环方法.