导航
1.全排列函数next_permutation(beg,end)
2.auti() //将字符串转化为整型
万能头文件 #include < bits/stdc++.h>
3.stringstream的int型转为string型用法
——————————————————————————————————— 1.全排列:可以推举出所有可能性
头文件:#include < algorithm>
例1:(int型)
#include <iostream>
using namespace std;
#include <algorithm>
int main()
{
int a[] = {
1,3,2}; //如果数组中数不是升序的话
sort(a,a+len); //注意要排一下序
int len = sizeof(a)/sizeof(a[0]); //计算出数组中数量
do{
for(int i=0;i<len;i++)
{
cout<<a[i];
}
cout<<endl;
}while(next_permutation(a,a+len)); //这个函数返回的是bool类型,没有更多排列返回false
return 0;
}
运行结果:
例2:(string型)
#include <iostream>
using namespace std;
#include <algorithm>
#include <string>
int main()
{
string s;
cin>>s;
do{
cout<<s<<endl;
}while(next_permutation(s.begin(),s.end()));
return 0;
}
运行结果:
例3:(vector容器)
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector>
int main()
{
vector<int> v;
for(int i=0;i<=2;i++)
{
v.push_back(i);
}
do{
for(vector<int>::iterator it=v.begin();it!=v.end();it++) //迭代器遍历
{
cout<<*it;
}
cout<<endl;
}while(next_permutation(v.begin(),v.end())); //放入迭代器
return 0;
}
运行结果:
手动写一个递归全排列:
学习网址:https://www.bilibili.com/video/av65164273?from=search&seid=12828774151800623150
使用for循环:
#include <stdio.h>
int main()
{
int a,b,c;
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)
for(c=1;c<=3;c++)
if(a!=b&&a!=c&&b!=c)
printf("%d%d%d\n",a,b,c);
return 0;
}
运行结果:
———————————————————————————————————
2.atoi() //将字符串转化为整型
要保证atoi中是char*型
c语言:
#include <stdio.h>
#include <stdlib.h> //要加头文件
int main()
{
char *s = "123"; //放到atoi中要char*型
int a = atoi(s);
printf("%d",a); //输出123
return 0;
}
c++:
#include <iostream>
using namespace std;
#include <stdlib.h>
int main()
{
string s = "123";
int a = atoi(s.c_str()); //中间要转换为char*型
cout<<a<<endl;
return 0;
}
———————————————————————————————————
3.stringstream的int型转为string型用法
#include <iostream>
#include <sstream> //要添加头文件
using namespace std;
int main()
{
int a = 145;
string b;
stringstream ss; //定义
ss<<a;//传入
ss>>b;//转成string型
if(b == "145")
{
cout<<"相同类型"<<endl;
}
else
{
cout<<"不同类型"<<endl;
}
return 0;
}
今天的文章递归字符串全排列_java全排列用递归实现[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86700.html