---
# System prepended metadata

title: 【4-0】進階架構

---

# 【4-0】進階架構

對於三級分以上的題目，有些時候會出現TLE（Time Limit Exceeded，超出時間限制）的狀況，而除了程式本身的複雜度之外，有一部分的原因是輸入輸出操作（I/O）的效率過低。

為了解決這個問題，我們會在程式碼開頭額外加上這兩行。而這就是我們未來寫程式的起手式：

## 起手式
```cpp=
#include <bits/stdc++.h>

using namespace std;

//副函式撰寫區

int main() {
    ios::sync_with_stdio(0); // 關閉 C++ 流和 C 流的同步
    cin.tie(0); // 取消 cin 和 cout 的綁定
    
    return 0;
}
```

你可能很好奇為什麼有個副函式撰寫區，那就是我們接下來要學的內容，我們終於不用把程式碼全部寫在 `main()` 裡面了！

### ios::sync_with_stdio(0)
C++ 的 `iostream`（如 `cin` , `cout`）和 C 標準庫中的 I/O 函數（如 `scanf`, `printf`）默認是同步的，也就是說，在C++中，你仍然可以使用 `scanf`, `printf` 。不過，這樣的同步機制會增加不必要的性能開銷。

### cin.tie(0)
默認情況下，C++ 的 `cin` 和 `cout` 是互相綁定的。每當你使用 `cin` 進行輸入時，C++ 會自動刷新 `cout` 的緩衝區，以確保所有尚未顯示的內容會在輸入操作之前顯示出來。這樣的設計可以保證輸出和輸入的順序，但同時也會增加性能開銷。

---

聯絡方式：codecodefunny@gmail.com
最後編修時間：2025/07/03 子柚筆