本單元語法速查表
| 語法 | 用途 | 備註 |
|---|---|---|
g++ -O2 -Wall -Wextra -Wshadow main.cpp |
編譯時開啟最佳化與常用警告 | 建議常駐;Code::Blocks 在編譯器設定勾選;未初始化警告要開最佳化才會出現 |
-Wconversion |
隱性轉型可能改值時警告 | 抓 long long 塞回 int、小數塞進整數 |
-fsanitize=address,undefined |
(延伸)執行期抓越界與未定義行為 | 程式會變慢;MinGW 多半不支援 |
#define int long long + signed main() |
溢位快篩:暫時把全部 int 換成 long long |
檢驗手段,不是常駐寫法(12.9) |
cerr << "x = " << x << '\n'; |
print 除錯:印中間變數 | 走 stderr,不混進答案;印完要清 |
#ifdef LOCAL ... #endif + -DLOCAL |
除錯輸出只在本機出聲 | OJ 上整段自動消失(12.9 的前置處理器) |
mt19937 rng(clock()); |
建亂數引擎,每次執行不同種子 | rng() % 5 + 1 得 1 \sim 5 的亂數 |
system("./gen > in.txt"); |
在程式裡執行一行終端機指令 | 對拍主程式的核心;回傳非零=指令失敗 |
assert(條件); |
條件不成立就終止並報行號 | #include <cassert>;-DNDEBUG 全部關掉 |