Imakf
2020-08-08 08:56:13
养成良好的代码习惯,从我做起。
闲来无事,开个新坑。点个赞吧亲~
也算是在我退役之前留下一些对后人有意义的东西了。
本博客记载一些比较通用的容易写挂的屑细节。
编译选项加 -fsanitize=undefined -Wextra -Wall
有效避免大部分错误。
memset
清空。cin
读入。cerr
或者 fprintf(stderr)
等调试语句。for(int i = n ; i >= 1 ; ++i)
for(int i = 1 ; i <= n ; ++i)
for(int j = 1 ; j <= n ; ++i)
// do sth
cout << flush
或 fflush(stdout)
。(感谢 WYXkk)int
、long long
、double
各种类型吗?eps
吗?或者说你定的 eps
是否合适?(有的时候 eps
过小也是会出问题的)-0.000000
。nan
或者 inf
。0x3f
。0
,(答案有可能是负数)。return
了个啥玩意,别告诉我 return 0
了。rand()
值域的显著差异。swap(i ,rev[i]);
-1
。s[read()].push_back(read())
。 (感谢 RedreamMer)sort
时有 cmp
不要忘记,有多个 cmp
不要混淆,重载了 <
更要小心。 (感谢 字幕君)dfs1(), dfs2()
。 (感谢 maruize)unsigned long long
的方法是 %llu
而不是 %ull
。check
函数的返回值到底是 bool
还是 double/int
。&
> ^
> |
)bits/stdc++.h
。c++11
。time
,y1
直接的变量,与库函数重名。max
,min
要求两个参数变量类型相同。using namespace std
和 std::
二选一。<
用来 priority_queue
的话,要记得加 const
。const
对象或者函数调用的函数也要是 const
的。scanf("%d",n);
(感谢 qidirj)printf("%d",&n);
#define MX 100000 + 7
struct node{
int w ,lc ,rc;
}pool[MX * 40];
cmp
必须能严格区分两个元素的大小或相等关系,如果出环,将可能会 RE。(感谢 xiaolilsq)stack
,deque
,queue
,很占用内存,vector
占用空间比前面几个小。long long
使用。