各种注意事项(还有c++的一些操作)
转c++时间: 1、记得打头文件 #define min(x,y) (x<y?x:y) #define max(x,y) (x>y?x:y) 其实用define定义大多数东西都要更快(比如lowbit) 6、c++一般爆变量范围和数组范围都不会提示,只是会搞出一些奇怪的结果。 7、c++数组下标最小为0。 8、在if中,可以用=来给变量赋值,不会判错,所以如果==打成=就会错。 9、c++用字符串前要加上using namespace std; 10、c++的字符&&字符串实际都是整数,即该字符的ascii码。 11、c++scanf输入时,变量前要加"&"。 12、c++scanf前要加"%"+该类型对应的字符,否则有可能会出错。 13、printf中n是换行。 14、cout中 << endl是换行。 15、Pascal中exit是return,halt是exit。break、continue不变。 16、c++中for循环基本相当于pascal的while循环。 17、过程的类型是void。 18、一般来说,c++在代码长度和运行时间都优于Pascal。 19、万能头文件:#include< bits/stdc++.h> *20、手动O2: attribute((optimize("-O2"))) 加在主程序、子程序前 21、取消同步 ios::sync_with_stdio(false); 加完后可使cin、cout 接近 printf和scanf的速度。 *22、关于程序结尾加不加return 0 *23、判断C++文件结束 *24、C++关闭文件 25、C++中用Ctrl+/可以快速注释/恢复一行 26、C++bitset用法 27、C++快速读入 inline int getint() { char c; int ret=0,k=1; for(c=getchar(); c<'0' || c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) ret=ret*10+c-'0'; return k*ret; } *28、register是好东西 29、c++自带的东西比一般的要快 void fft(C a[],int type) { for (int i=0; i<N; i++) AA[i]=a[c[i]]; for (int i=0; i<N; i++) a[i]=AA[i]; for (int s=N>>1,S=2,S2=1,i=1; S<=N; i++,S2=S,s>>=1,S<<=1) { C W(Cos[i],Sin[i]*type); // ① // C w(1,0); // fo(j,S2-1) // { // for (l=j; l<N; l+=S) // { // u=a[l];v=w*a[l+S2]; // a[l]=u+v;a[l+S2]=u-v; // } // w=w*W; // } // ② for (l=0; l<N; l+=S) { C w(1,0); fo(j,S2-1) { u=a[l+j];v=w*a[l+j+S2]; a[l+j]=u+v;a[l+j+S2]=u-v; w=w*W; } } } } ①是先枚举每个段里的位置,然后一起算。 (但不开O2似乎①更快些) 31、stable_sort要比sort更快 *35、c++在本地的随机数范围是$0$到$2^{15}-1$,但在OJ上是$0$到$2^{31}-1$ 36、在switch中case :后直接按‘{‘会自动补上‘break;‘ c++头文件精简版#include <iostream> #include <cstdlib> #include <cstdio> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,c) for (a=b; a>=c; a--) using namespace std; int main() { freopen("文件名.in","r",stdin); freopen("文件名.out","w",stdout); fclose(stdin); fclose(stdout); return 0; } 完整版#include <bits/stdc++.h> #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #define fo(a,c) for (a=b; a>=c; a--) using namespace std; __attribute__((optimize("-O2"))) inline int getint() { char c; int ret=0,k=1; for(c=getchar(); c<'0' || c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) ret=ret*10+c-'0'; return k*ret; } int main() { ios::sync_with_stdio(false); freopen("文件名.in",stdout); fclose(stdin); fclose(stdout); return 0; } O3系列#pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("inline-functions") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("inline-small-functions") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("inline-functions-called-once") #pragma GCC optimize("-fdelete-null-pointer-checks") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |