[打基础]一些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; }