C++实现全排列(字典序)

来源:互联网 发布:通州淘宝城图片 编辑:程序博客网 时间:2024/05/18 21:07

以前都是写用复杂的逻辑语言实现全排列,直到发现了C++中原来已经封装好了一个全排列函数:next_permutation(s.begin(),s.end()),头文件<algorithm>

这个函数会自动生成下一个字典序的排序,对应的还有prev_permutation,生成上一个字典序排序,炒鸡的简单明了,省去一大堆复杂的循环~~;

代码如下:

#include<iostream> #include<cstdio> #include<string>#include<map>#include<algorithm> using namespace std;  int main()  { int n;cin >> n;while(n--){    string str;cin >> str;  sort(str.begin(),str.end());do{cout << str << endl;}while(next_permutation(str.begin(),str.end()));} return 0;  } 


原创粉丝点击