算法库-全排列,递归全排列 auti()字符转为整型 stringstream用法

2024-02-01 21:40

本文主要是介绍算法库-全排列,递归全排列 auti()字符转为整型 stringstream用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导航

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);  //输出123return 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;
}

这篇关于算法库-全排列,递归全排列 auti()字符转为整型 stringstream用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668564

相关文章

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

Java中的内部类和常用类用法解读

《Java中的内部类和常用类用法解读》:本文主要介绍Java中的内部类和常用类用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录内部类和常用类内部类成员内部类静态内部类局部内部类匿名内部类常用类Object类包装类String类StringBuffer和Stri

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发