实用小tip(自用)
向上取整
要求一个\(a / b\) 的向上取整,做法是
(a + b - 1) / b;
memset节省初始化时间
memset是按字节线性初始化的,如果已经知道了要用的空间即可用以下写法
memset(a,0,sizeof (类型) * (num + 1));
fill函数初始化数组
memset()是按字节初始化,不能初始化某些特殊值
用fill初始化
fill(a,a + n,1);
max_element()
找寻容器中最大值第一次出现的位置,返回迭代器,加 * 解引用
int * pos = max_element(a,a + n);
cout << * pos << endl;
未知size的二维数组
vector<vector<type>> g(n,vector<type> (m));
取模后的答案不要进行操作
除法会很慢
在一个二维矩阵中的一个点顺时针旋转\(90^。\)的坐标变换
\((x,y) -> (y,n - x + 1)\)