1.next_permutation函数:
默认 (1) | template <class BidirectionalIterator> bool next_permutation (BidirectionalIterator first, BidirectionalIterator last); |
---|---|
定制 (2) | template <class BidirectionalIterator, class Compare> bool next_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp); |
next_permutation()会取的 [frist,last)所标示之序列的下一个排列,如果没有下一个排序,便会返回false;否则返回true;
基本代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int arr[3] = {1,2,3};
do
{
cout << arr[0] << arr[1] << arr[2] << endl;
}
while(next_permutation(arr, arr + 3));
return 0;
}
运行结果:
D:\nowcode\cmake-build-debug\Precision.exe
123
132
213
231
312
321
进程已结束,退出代码为 0
例题练习:
2.prev_permutation函数
prev_permutation()会取的[first,last)所标示之序列的上一个排列,如果没有下一个排列,便返回false;否则返回true.
默认 (1) | template <class BidirectionalIterator> bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last ); |
---|---|
定制 (2) | template <class BidirectionalIterator, class Compare> bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp); |