一.常量 聲明常量可以方便代碼的修改,提高復用性. const int maxn=10000; const int N=10000+10; const double exp=1e-6; 同時,聲明常量也可以減少重覆運算,提高代碼速度,例子如下: string s; cin>>s; for(int i ...
一.常量
聲明常量可以方便代碼的修改,提高復用性.
const int maxn=10000; const int N=10000+10; const double exp=1e-6;
同時,聲明常量也可以減少重覆運算,提高代碼速度,例子如下:
string s; cin>>s; for(int i=0;i<len;i++) s[i]='a';View Code
上述代碼中,可以利用常量儲存s的長度,減少重覆計算量.
string s; cin>>s; const int len=s.length(); for(int i=0;i<len;i++) s[i]='a';View Code
二.寄存器變數
寄存器變數可以通過register關鍵詞聲明,聲明方法(樣例)如下:
register int i=0;
頻繁使用的變數可以使用這種方法聲明,常用於for()函數內.
for(register int i=0;i<999999;i++)
機器會儘可能多地將這種變數放入CPU中的寄存器內,而不是記憶體里,從而提高效率.但要註意:寄存器變數不能使用指針.
三.編譯優化(O1/O2/O3)
//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")
四.萬能頭文件(OI競賽請慎用)
c++中的萬能頭文件包含了幾乎全部的c++頭文件,引用方法如下:
#include <bits/stdc++.h>
這樣就可以代替下麵的一大堆頭文件了.
#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競賽都支持使用,所以還是不太推薦在競賽上使用.