# C++ 陣列 這篇教學將教你使用`vector`標準庫來創建、寫入、讀取陣列 ## 1.1 一維陣列 在C++中我們使用以下程式創建一個有10個空格的一維數字陣列 ```cpp= #include <iostream> #include <vector> //引入vector標準庫 using namespace std; int main() { vector<int> list(10); //list只是名字 //跟定義變數一樣,只是改成用vector<int>定義陣列 } } ``` 接著讓我們先把每個空格都填上數字1 ```cpp= #include <iostream> #include <vector> using namespace std; int main() { vector<int> list(10, 1); //在這個跨號中可以把預設數字寫上 } ``` 如果你想讓你自己輸入~~ ``` 範例輸入: 1 3 5 2 7 2 5 2 8 2 ``` ```cpp= #include <iostream> #include <vector> using namespace std; int main() { int temp; //創建一個暫存變數 vector<int> list(10); for (int i = 0; i < 10; i++){ cin >> temp; //C++的輸入不用寫分割 list[i] = temp; } } ``` 同時我們一定也需要知道陣列中的數值吧,我以我們會~~ ```cpp= #include <iostream> #include <vector> using namespace std; int main() { int temp; vector<int> list(10, 1); for (int i = 0; i < 10; i++){ cin >> temp; list[i] = temp; } for (int i = 0; i < 10; i++){ cout << list[i] << " ";// 用for迴圈輸出 } } ``` ### 小練習 給定一個一維陣列,其中包含了學生的成績(整數),請編寫一個C++程式,計算並輸出這些學生成績的平均值。假設陣列中至少有一個成績,並且所有成績都是正整數。 ``` 範例輸入: 5 90 85 92 88 76 ``` ``` 範例輸出: 86.2 ``` --- ## 二維陣列 在C++中,我們可以使用`vector`來創建二維陣列。二維陣列可以被視為"陣列的陣列",這讓我們可以存儲表格形式的數據。 ### 創建二維陣列 首先,讓我們來看如何創建一個二維陣列。以下示例創建了一個5行4列的二維陣列,並將所有元素初始化為0。 ```cpp #include <iostream> #include <vector> using namespace std; int main() { // 創建一個5行4列的二維陣列,初始化為0 vector<vector<int>> matrix(5, vector<int>(4, 0)); } ``` ### 寫入二維陣列 如果我們想要修改或寫入二維陣列的數據,可以使用雙重`for`迴圈來達成。例如,將上面創建的二維陣列中的所有元素設置為其行索引與列索引之和: ```cpp #include <iostream> #include <vector> using namespace std; int main() { vector<vector<int>> matrix(5, vector<int>(4, 0)); for (int i = 0; i < matrix.size(); i++) { // 遍歷行 for (int j = 0; j < matrix[i].size(); j++) { // 遍歷列 matrix[i][j] = i + j; // 設置元素值為行索引與列索引之和 } } } ``` ### 讀取二維陣列 讀取二維陣列的元素也是使用雙重`for`迴圈。以下代碼片段將遍歷上面創建的二維陣列,並打印出所有元素: ```cpp #include <iostream> #include <vector> using namespace std; int main() { vector<vector<int>> matrix(5, vector<int>(4, 0)); // 假設matrix已被填充數據 for (int i = 0; i < matrix.size(); i++) { // 遍歷行 for (int j = 0; j < matrix[i].size(); j++) { // 遍歷列 cout << matrix[i][j] << " "; } cout << endl; // 每輸出完一行後換行 } } ``` ### 小練習 給定一個二維陣列,其中包含了班級中每位學生的成績(整數),每行代表一位學生的成績。請編寫一個C++程式,計算並輸出每位學生成績的平均值,以及所有學生的總平均成績。 假設每位學生都至少有一門成績,並且所有成績都是正整數。此外,輸入的第一行為學生人數,隨後的每一行代表一位學生的成績,成績之間以空格分隔。 ``` 範例輸入: 3 90 85 92 88 76 84 95 92 89 範例輸出: 學生1平均成績:89 學生2平均成績:82.6667 學生3平均成績:92 總平均成績:87.8889 ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.