next_permutation
对于1234这样的排列,可以得到它的下一个比它大的排列,即1243,然后下一个是1324,依次达到全排列的效果
prev_permutation
得到下一个比给的数小的数
1234来说,没有比它更小的数了,但是4321的话,它的下一个比它小的数是4312,然后是4213,如此排列
#include#include using namespace std; int main() { char a[5] = "4231"; sort(a, a + 4); //先进行排序,保证从基准排列序列中的第一个开始输出 do { puts(a); } while (next_permutation(a, a + 4)); cout< puts(a); } while (prev_permutation(a, a + 4)); return 0; }
心得:
在之前的学习过程中,如果遇到需要排列的题目,都是通过很复杂的for循环,或者迭代实现,现在有了next_permutation和prev_permutation 之后可以通过选择一个范围得到这个范围内的排列内容。



