struct
===
如果有一個題目要求你處理某一班學生的成績,學生總共40人,而且科目總共有五科: 國文, 英文, 數學, 物理, 社會。
這時候你可能會想說那就開五個陣列吧!
`int ch[45], eg[45], ma[45], py[45], so[45];`
確實這個方法是正確的。
但是如果今天要執行某些排序可能就沒那麼方便了,這時就該試試看struct
1. 宣告struct
```
struct student{ //宣告一個struct型態為student
int ch, eg, ma, py, so;
}; //分號一定要寫
```
2. 宣告以student為型態的東西
`student grade[45];`
3. 輸入成績
```
for(int i = 1; i <= 40; i++)
cin >> grade[i].ch >> grade
```
我們上次的課程有提到在圖論中如果邊有權重該怎麽辦呢? struct!
1.
```
struct edge{
int u,w;
//u為要去的方向,w為權重;
}
vector<edge> G[5005];
//宣告vector的型態為edge
```
可是你們應該有個問題是vector只能push_back一個元素啊?
不其實用以用個小東西
G[v].push_back((edge){u,v});
像這樣
練習時間
請你用struct模擬下件事
1