next_permutation
功能:将[first, last)范围内的排列重组为字典序更大的下一个新排列。permutation正是“排列”之意。
调用形式:next_permutation(first, last),其中,first是指向排列头元素的指针,last是指向排列末元素再下一位的指针,两者给出排列范围:[first, last).
函数所在头文件:<algorithm>
例子:
1 #include2 #include 3 using namespace std; 4 5 int main() 6 { 7 int a[3] = { 1, 2, 3}; 8 cout << "关于数组a的所有3!种排列按字典序升序排列为:" << endl; 9 do10 {11 cout << a[0] << ' ' << a[1] << ' ' << a[2] << endl;12 }while(next_permutation(a, a + 3));13 return 0;14 }
运行结果:
关于数组a的所有3!种排列按字典序升序排列为:1 2 31 3 22 1 32 3 13 1 23 2 1
类似函数:prev_permutation,功能是求给定排列的下一个字典序更大的排列。