开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天点击查看活动详情
万能头文件
#include<bits/stdc++.h>
二维数组输入
for (int i = 0; i < N; i++)
{ for (int j = 0; j < M; j++) {
cin >> field[i][j]; } }
//如果此处用scanf,scanf输入值要空格
//scanf("%d",&field[i][j]);
nullptr来替代NULL的宏定义
使用emplace比常规的push_back少调用了一次复制构造函数
| 函数 | 对应 |
|---|---|
| emplace_front | push_front |
| emplace | insert |
| emplace_back | push_back |
- reserve() 为容器预留足够的空间,避免不必要的重复分配。预留空间大于等于字符串的长度。预留空间可以通过capacity()查看。
- resize() 调整字符串的大小。如果字符串长度变小,多余的字符会被截掉。若长度变大,可以设置填充的字符。长度可以通过size()查看。
效率
a+=b%10;//+=一次寻址,+=是运算符,自动向较高精度转换
//高于
i=b%10;
a=a+i;//=两次寻址,要求=两侧类型相同
输出
- cout<<ceil(a)<<endl; //向上取整
- cout<<floor(a)<<endl; //向下取整
- cout<<round(a)<<endl; //四舍五入 参数是double类型,返回的是保留到整数位的double类型
- #include //头文件
- // /除号保留商的整数部分,若a/b中有一个为小数形式,编译器也将另一个整数隐式的转化为小数形式
- int a,sum;
- a1.0/sum100; //百分数
关于if语句的区分
if(grade[j]>=60&&grade[j]<85)
pass++;
else if(grade[j]>=85)//只执行一个语句,当if满足时,就不再执行else if
good++;
//上和下有什么区别
if(grade[j]>=60)
pass++;
if(grade[j]>=85)//if...if可以都执行
good++;
//改上
if(grade[j]>=85)
good++;
else if(grade[j]>=60)
pass++;
字符
- //可以根据ACSLL码值来确定是哪个字母
- int a;
- char A;
- a='A';//此处a为A的ASCLL码值
- //a-z:97-122,A-Z:65-90,0-9:48-57
数组
- *max_element(v.begin(),v.end())
- //输出vector数组最大值,数组从小到大排序,输出最后面的值
- *min_element(v.begin(),v.end())
- //输出vector数组最小值,数组从小到大排序,输出最前面的值
- *min_element(arr, arr + 4)
- //普通定长数组输出最小值
- INT_MAX = 2^31-1=2147483647;//最大值常量
- INT_MIN= -2^31=-2147483648;//最小值常量