STL好

· · 个人记录

<cmath>

·ceil:向上取整,返回大于或等于函数参数,并且与之最接近的整数

用 法:double ceil(double x);

注意:向上取整的时候,正数,则直接将当前整数加一;负数,则将整数后面的数据抹除;整数,则不变。

·floor:向下取整,返回小于或等于函数参数,并且与之最接近的整数

用法:double floor(double x);

注意:向下取整的时候,正数,则取其整数部位,抹除小数部位;负数,则取其整数加一;整数,则不变

·round:四舍五入

用法:round(number,digits) ***//number,要四舍五入的数,digits是要小数点后保留的位数

注意:正数,小数位大于5,则整数位加一,小数位小于5,则整数位不变,抹除小数位;负数,小数位小于5,则整数位不变,抹除小数位,小数位大于5,则整数位加一;整数,则不变。

<algorithm>

·reverse:反转函数(string/字符数组/自定义任意类型数组)

用法:

(1)string反转:

string a;//定义

//输入等操作

reverse(a.begin(),a.end());//反转

//其他操作

(2)字符数组反转:

    char a[101];
    cin.getline(a,sizeof(a));
    int m=strlen(a);
    reverse(a,a+m);
    puts(a);

(3)自定义类型数组反转:

/*例:调用的时候reverse1(a,n1,n2);意思就是反转数组a在[a[n1],a[n2]]之间的元素,并且修改数组。

如果你数组类型是int类型,那么你就把typedef char elemtype;中的char改成int,同理,其他类型改成相应类型即可。*/

#include<iostream>

using namespace std;

typedef char elemtype;

void reverse1(elemtype *a,int i,int j)

  {

        elemtype c;
        while(i<j)
            {
            c=a[i];
            a[i]=a[j];
            a[j]=c;
            i++;
            j--;
        }
}

int main()          
{

    elemtype a[100];                
    int n,n1,n2;                 
    cin>>n>>n1>>n2;
    for(int i=0;i<n;++i)
        cin>>a[i];
    reverse1(a,n1,n2);
    for(int i=0;i<n;++i)
        cout<<a[i]<<' ';
    return 0;
} 

<iomanip>

·保留小数点后n位

cout << setiosflags(ios::fixed) << setprecision(n) << 被操作的数 << endl;

·保留n位有效数字

cout << setprecision(n) << 被操作的数 << endl;

<cctype>

·isdigit():检查参数是否为十进制数字字符

(其实就是检查参数是不是数字~)返回值:若参数为阿拉伯数字0~9,则返回非0值,否则返回0。