算法高频函数

目录

fixed()

setprecision()

setw()

swap()

sort()

subsrt()

atoi()


将不定时更新

fixed()

消除浮点数的科学计数法

只要出现了fixed,则后面都是以fixed输出。

用定点表示法表示浮点数

代码:

double n = 0.2345678;
float m = 0.2345678;
double a = 12345678;
float b =  12345678;
cout<<b<<endl;
cout<<fixed<<b<<endl;
cout<<n<<" "<<m<<" "<<a<<endl;

运行结果:

1.23457e+007
12345678.000000
0.234568 0.234568 12345678.000000

setprecision()

fixed与setprecision(n)连用可以控制小数点后的位数,现在就可以理解为那是定点数记数法。

如果没有fixed的话,就是浮点数记数法了,那么它控制的应该就是有效数字的位数(包括小数点前的)

#include<iostream>
#include <iomanip> //注意加头文件
using namespace std;
​
int main(){
    double n = 0.2345678;
    float m = 0.2345678;
    double a = 12345678;
    float b =  12345678;
    cout<<b<<endl;
    cout<<setprecision(1)<<b<<endl;
    cout<<setprecision(2)<<b<<endl;
    cout<<setprecision(1)<<fixed<<b<<endl;
    cout<<n<<" "<<m<<" "<<a<<endl;
    
    
    return 0 ; 
}

运行结果:

1.23457e+007
1e+007
1.2e+007
12345678.0
0.2 0.2 12345678.0

setw()

其控制后面输出的长度,默认右对齐,输出内容长度不够用空格补齐,输出内容长度超过则正常输出。

注意:

  1. setw()只对后面紧跟的输出有限制。

  1. 标点符号占一位!

#include<iostream>
#include <iomanip> //别忘了头文件
using namespace std;
​
int main(){
    double n = 0.2345678;
    float m = 0.2;
    cout<<n<<endl;
    cout<<m<<endl;
    cout<<setw(10)<<n<<endl;
    cout<<setw(2)<<n<<endl;
    cout<<setw(10)<<m<<endl;
    
    
    return 0 ; 
}

运行结果:

0.234568
0.2
  0.234568
0.234568 //超出,正常输出
       0.2

swap()

交换两个变量

#include<iostream>
using namespace std;

int main(){
	int a = 1;
	int b = 2;
	swap(a,b);
	cout<<a<<" "<<b<<endl;
	double n = 1.012;
	double m = 2.023;
	swap(n,m);
	cout<<n<<" "<<m<<endl;
	float c = 1.0;
	float d = 2.0;
	swap(c,d);
	cout<<c<<" "<<d<<endl;
	char i = 'A';
	char j = 'B';
	cout<<i<<" "<<j<<endl;
	swap(i,j);
	cout<<i<<" "<<j<<endl;
	string  w = "笨";
	string  e = "蛋";
	cout<<w<<" "<<e<<endl;
	swap(w,e);
	cout<<w<<" "<<e<<endl;
}

运行结果:

2 1
2.023 1.012
2 1
A B
B A
笨 蛋
蛋 笨

sort()

进行排序

#include<bits/stdc++.h> //注意头文件
using namespace std;
​
int main()
{
    string s = "WHERETHEREISAWILLTHEREISAWAY";
    //直接排序
    sort(s.begin(), s.end());
    cout<<s<<endl;
    return 0;
}

运行结果:

AAAEEEEEEHHHIIILLRRRSSTTWWWY

对数组进行排序:

#include<bits/stdc++.h>
using namespace std;
​
int main()
{
    int a[5] = {2,5,1,3,4};
    sort(a,a+5);
    for(int i = 0 ; i < 5 ; i++){
        cout<<a[i];
    }
    return 0;
}

运行结果:

12345

subsrt()

对字符串进行切割

#include<iostream>
using namespace std;
​
int main(){
    string str = "hello";
    for(int i = 0 ; i < str.size() ; i++){
        cout<<str.substr(i,1)<<endl;
        cout<<str.substr(i,2)<<endl; \\前面的i代表从字符串第几个开始切割,后面的数字代表切割几个
    }
    return 0;
}

运行结果:

h
he
e
el
l
ll
l
lo
o
o

atoi()

atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串“12345”转换成数字12345。

  • c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同。

  • 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

#include<iostream>
using namespace std;
​
int main(){
    string str = "1234";
    cout<<atoi(str.c_str())<<endl;
    string a = "1";
    cout<<a.c_str()<<endl; 
    
    return 0;
}

运行结果:

1234
1

咱们可以来判断一下变量类型

#include<iostream>
#include<typeinfo> //头文件
using namespace std;


int main(){
	string str = "1234";
	cout<<typeid(atoi(str.c_str())).name()<<endl;
	string a = "1";
	cout<<typeid(a.c_str()).name()<<endl; 
	
	return 0;
}

运行结果:

i \\int(i)
PKc \\pointer(P) const(K) char(c)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值