如何使用C++的next/prev_permutation

时间:2024-10-11 21:57:58

next/prev_permutation,都是C++STL中的函数,包含在"algorithm"库里那么,它们究竟有什么用,该如何使用它们呢?该图片来自于网络

如何使用C++的next/prev_permutation

工具/原料

电脑

C++编译器

next/prev_permutation

1、next_permutation,中文意思是“下一个排列”,正如它的名字一样,它就是用来求下一个排列的例如 1 2 3 4 5 的下一个排列是 1 2 3 5 4,再下一个是 1 2 4 3 5next_permutation(首指针,尾指针); 区间左闭右开要在头文件中加上 "#include<algorithm>"图中,"a","a+5"都是指针

如何使用C++的next/prev_permutation

2、next_permutation 也支持迭代器也就是我们可以这么写:next_permutation(a.begin(),a.髫潋啜缅end());图中的 "a.begin()","a.end()"都是迭代器

如何使用C++的next/prev_permutation

3、next_permutation 在求下一个排列的时候,还会返回是否有比它排名更靠后的排列,所以我们可以根据 next_per罪焐芡拂mutation 的返回值求出全排列例如 "4 3 2 1"就没有下一个排列,它是排名最靠后的如图,do-while 循环n个不重复的元素的全排列应该有 n!(n的阶乘,即1*2*3*……*n) 个

如何使用C++的next/prev_permutation

4、我们能不能手写代码代替next_permutation 的功能呢?可以,不过很麻烦如图,该代码来源于网络

如何使用C++的next/prev_permutation

5、prev_permutation(上一个排列),和next_permutation 正好相反,但使用方法差不多,这里就不再赘述

如何使用C++的next/prev_permutation
如何使用C++的next/prev_permutation

6、手写prev_permutation该代码来源于网络

如何使用C++的next/prev_permutation
© 手抄报圈