比较实用的函数(c++)

我刚没学多久别喷我

#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
#include<ctime>
#include<cstdlib> 
#include<math.h>
using namespace std;
/*字符串处理*/
string to_str(int n){//int转string
	stringstream transform;
	transform<<n;
	string str;
	transform>>str;
	return str;
}
int to_num(string str){//string转int 
	stringstream transform;
	transform<<str;
	int n;
	transform>>n;
	return n;
}
int n_c_of(int n,char c,string s){//字符串内第n个指定字符的下标 
	int i=0,j=n;
	for(i=0;j>0;i++){
		if(s[i]==c){
			j--;
		}
	}
	return i-1;
}
int sum_of_c_in_s(char c,string s){//字符串内指定字符的个数
	int sum=0;
	for(int i=0;i<s.length();i++){
		if(s[i]==c){	
			sum++;
		}
	}return sum;
}
bool include(string s,char c){//字符串内包含某字符? 
	for(int i=0;i<s.length();i++){
		if(s[i]==c){
			return true;
		}
	}return false;
}
int first(char c,string s){//第一个指定字符 
	return n_c_of(1,c,s);
}
int last(char c,string s){//最后一个指定字符 
	return n_c_of(sum_of_c_in_s(c,s),c,s);
}
double if_then_else(bool flag,double n1,double n2){
	if(flag){
		return n1;
	}else return n2;
}
/*数学*/ 
bool prime(int n){//n是否是质数? 
	int sum=0;
    for(int i=1;i<=n;i++){
        if(n%i==0){
            sum++;
        }
    }
    if(sum==2){
        return true;
    }return false;
}
int gcd(int a,int b){//最大公因数 
	return __gcd(a,b);
}
int lcm(int a,int b){//最小公倍数 
	return a*b/__gcd(a,b);
}
int prime_n(int n){//第n个质数 
	int j;
	for(int i=1;i<=n;i++){
		j++;
		while(!prime(j)){
			j++;
		}
	}return j;
}
int digit(int n,int d){//数位 
	string num=to_str(n);
	reverse(num.begin(),num.end());
	return num[d-1]-48;
}
void bubble_sort(int n,int sort[]){//冒泡排序 
	int k,temp;
	for(int i=0;i<n;i++){
		k=i;
		for(int j=i+1;j<n;j++){
			if(sort[j]<sort[k]){
				k=j;
			}
		}
		temp=sort[i];
		sort[i]=sort[k];
		sort[k]=temp;
	}
}
void choose_sort(int n,int q[]){//选择排序 
	int k,temp;
	for(int i=0;i<=n-1;i++){
		cin>>q[i];
	}
	for(int i=0;i<=n-1;i++){
		k=i;
		for(int j=i+1;j<n;j++){
			if(q[j]<q[k]){
				k=j;
			}
		}
		temp=q[i];
		q[i]=q[k];
		q[k]=temp;
	}
}
double dou_abs(int n){
	return if_then_else(n<0,n*-1.0,n*1.0);
}
double dis(double x1,double y1,double x2,double y2){
	double x=dou_abs(x1-x2);
	double y=dou_abs(y1-y2);
	return sqrt(pow(x,2)+pow(y,2));
}
double helen_triangular_s(double x1,double y1,double x2,double y2,double x3,double y3){
	double A=dis(x1,y1,x2,y2);
	double B=dis(x1,y1,x3,y3);
	double C=dis(x2,y2,x3,y3);
	double p=(A+B+C)/2;
	return sqrt(p*(p-A)*(p-B)*(p-C));
}
	

持续更新中,有什么建议随便题

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值