借助 vector 的 next_permutation 实现数组全排列情况
数组 {1,2,3} ,得到所有的排列情况,比如 1 2 3 或 3 2 1 或 2 1 3
【参考程序】
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[3] = {1, 2, 3};
vector<int> nums(a, a + 3);
// 排序数组,确保初始排列是最小的排列
sort(nums.begin(), nums.end());
int cnt = 0; //数量
do {
cnt++;
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl;
} while (next_permutation(nums.begin(), nums.end()));
cout << cnt << endl;
return 0;
}