[打基础]一些C++自带的库(持续更新)

  • iomanip

manip是manipulator(嗯,操作器?)的缩写,对应头文件就是

#include<iomanip>

 在算法竞赛里用得到的应该是两个接口:进制转换(8,10,16)/保留X位有效数字

#include<cstdio>
#include<iostream> 
#include<iomanip>
using namespace std;
int n;float m;
int main()
{
    scanf("%d%f",&n,&m);
    cout<<setbase(8)<<n<<endl<<setprecision(5)<<m;
    return 0;
}

 需要注意setprecision会四舍五入,同时如果有后缀0的话直接不输出

  • sort快排~

嗯我们注意一下如果我要对$a[1]$到$a[n]$的元素进行排序,应该写成 sort(a+1,a+n+1,cmp); ,这是个左闭右开区间!

后面的cmp是我们自定义的比较函数,默认是比较“小于”关系,比如我们对两个自定义的类型Point进行比较,就可以写成:

inline bool cmp(const Point &a,const Point &b)
{
    if(a.x==b.x)return a.y<b.y;
    return a.x<b.x;
}

当然我们也可以对某些类型自定义“小于”关系,比如

inline Point operator <(Point a,Point b)
{
    if(a.x==b.x)return a.y<b.y;
    return a.x<b.x;  
}
原文地址:https://www.cnblogs.com/yoshinow2001/p/13490013.html