声明常量能够方便代码的修改,提升复用性.ios
const int maxn=10000; const int N=10000+10; const double exp=1e-6;
同时,声明常量也能够减小重复运算,提升代码速度,例子以下:c++
string s; cin>>s; for(int i=0;i<len;i++) s[i]='a';
上述代码中,能够利用常量储存s的长度,减小重复计算量.ide
string s; cin>>s; const int len=s.length(); for(int i=0;i<len;i++) s[i]='a';
寄存器变量能够经过register关键词声明,声明方法(样例)以下:函数
register int i=0;
频繁使用的变量能够使用这种方法声明,经常使用于for()函数内.优化
for(register int i=0;i<999999;i++)
机器会尽量多地将这种变量放入CPU中的寄存器内,而不是内存里,从而提升效率.但要注意:寄存器变量不能使用指针.spa
//O1优化 #pragma GCC optimize(1) #pragma GCC optimize("O1") //O2优化 #pragma GCC optimize(2) #pragma GCC optimize("O2") //O2优化 #pragma GCC optimize(3) #pragma GCC optimize("O3")
c++中的万能头文件包含了几乎所有的c++头文件,引用方法以下:指针
#include <bits/stdc++.h>
这样就能够代替下面的一大堆头文件了.code
#include <iostream> #include <cstdio> #include <fstream> #include <algorithm> #include <cmath> #include <deque> #include <vector> #include <queue> #include <string> #include <cstring> #include <map> #include <stack> #include <set> //......
可是并非全部OI竞赛都支持使用,因此仍是不太推荐在竞赛上使用.blog