算法模板

算法比赛中常用的函数,头文件,算法模板

特殊函数

//万能头文件
#include<bits/stdc++.h>
#include<functional>
sort(a,a+n,less<int>());//内置类型的由小到大排序
greater<int>();
//作用相当于 bool cmd();
#include <bitset>
string s;
s = bitset<8>(a[i]).to_string(); // 转换字符串
to_ulong() // 转换为unsigned long类型
to_ullong(); // 转换成unsigned long long类型
set(x, v); // 没有参数时 将全部位设为1
// 有一个x, 将x下标处设为1
// 两个参数,将x处设为v值
reset(x); // 置0 无参全部置,有参置下标
flip(x); // 取反,无参全部取,有参取下标处
text(x); // 检测下标处是不是1 返回true 0返回false
any(); // 检查是否有1
none(); // 检查是否没有1
all(); // 检查是否全为1
count(); // 求1的个数
size(); // 求位数
#include <typeinfo>
typeid(x).name(); // 获取x的类型
//输出重定向
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
//控制台输入数据,如何输入文件结束标志
//**在Windows下,输入完毕后先按Enter键,再按Ctrl+Z键,最后再按Enter键
//加快输入速度的两种方法
ios::sync_with_stdio(false); cin >> x;
scanf();
//类型转换
#include <sstream>
ss.clear(); // 清空
ss << s;
ss >> a;
#include <cctype>
isdigit(s[i]); // 若参数c为阿拉伯数字0~9 字符,则返回非0值,否则返回0。
int n = stoi(s); // 把s转化为int型
#include <iomanip>
cout << setw(2); // 设置位数
setprecision(n) //设置显示小数精度为n位
cout << stefill(c); // 设置填充字符
setiosflags(ios::scientific) //指数表示
setiosflags(ios::left) //左对齐
setiosflags(ios::right) //右对齐
include <string>
substr(int index, int mum); // 返回一个子字符串
//std::string::npos是一个常数,它等于size_type类型可以表示的最大值
//用在 s.find() 返回值

算法模板