next_permutation 走一遍
标准库的 next_permutation 把序列改成字典序的下一个排列,已经是最后一个时返回 false。运行下面这段程序:
#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
#include <algorithm>
int main() {
vector<int> a = {1, 2, 3};
int cnt = 0;
do {
cnt++;
} while (next_permutation(a.begin(), a.end()));
cout << cnt << "/" << a[0] << a[1] << a[2] << endl;
}
(本题用 g++ -std=c++17 -O0 编译。)
全部评论