1.容器:
- 用vector构建二维数组
vector<vector<int>> v(m,vector<int>(n));
- set只能通过*iter读取内容
- 迭代器的类型:
- 迭代器失效
- 泛型算法(关联容器自己的算法更快)
s.find(c)//没找到返回-1
auto iter=find(v.cbegin(),v.cend(),val);
sort(v.cbegin(),v.cend());
bool ishooter(int a,int b){
return a<b;//为真时交换
}
sort(v.cbegin(),v.cend(),ishooter);
- 字符串:
- 与数值相互转换
stoi,stod,to_string
- 初始化
s1(s,pos,len)
s1=s.substr(pos,len)
加减运算
(s1[i]-'0')-(s2[i]-'0')
2.数学
- 绝对值:
abs()//整型的绝对值
fab()//浮点型的绝对值
sqrt:开方
除法和取余
2/3=0
2%3=2
- 比较2个浮点数的大小
(f1-f2)<1e-6
或者使用
[https://zhuanlan.zhihu.com/p/23789460]
- 数据容量(VS)防止数据溢出
- 2^16=6.6*10^4
- int 4字节
- long 4字节
- 2^32=4.3*10^9
- long long 8字节
- double 8字节
- 2^64=1.9*10^19
辗转相除法求最大公因数
int gcd(int a,int b){
return b=0?a:gcd(b,a%b);
}
3.输入输出
- printf(”%0m.nf”,f);
- scanf(“%d-%d”,)
- getline(cin,s)读取1整行,读入但是不包含回车,遇到回车停止。可以使用getchar()保存回车
- cin会忽略开头的空白直到遇到下一个空白