函数的具体详解:
boolean next_permutation(a.begin(),a.end())
该函数是以输入字符串中的字符所构建的按字典顺序全排列中,判断当前字符串之后是否还有下一个字符串如果next_permutation的执行次数少于全排列的个数,返回true
例如 a="abc" 全排列有 "abc" "acb" "bac" "bca" "cab" "cba"
执行一次next_permutation 返回true a变成 "acb"
再执行一次next_permutation 返回true a变成 "bac"
...
当执行到a="cba" 时 由于这已经是全排列的最后一个字符串,所以 再次执行next_permutation 则返回false
但用在代码中直接输入next_permutation(字符串名称,字符串名称+数量) eg:next_permutation(a,a+4)
与该函数相对应的是prev_permutation()函数
区别在于前者是求出下一个排列组合,而后者是求出上一个排列组合。即对序列 {a, b, c},每一个元素都比后面的小,按照字典序列,固定a之后,a比bc都小,c比b大,它的下一个序列即为{a, c, b},而{a, c, b}的上一个序列即为{a, b, c}。
注意:此对序列不会事先给你按照顺序来排好的,比如输入的是c,a,b,结果就是cab cba;而不是给你先排成a,b,c。