一、vector簡介
vector是C++ STL庫中的一個容器,它能夠動態地調整大小,具有快速的插入和刪除操作。可以看作是一個可以像數組一樣使用的動態數組,支持下標隨機訪問。
二、使用vector實現二維數組
#include <vector>
using namespace std;
int main() {
int row = 3, col = 4;
vector<vector<int>> arr(row, vector<int>(col));
// 遍歷二維數組
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr[i][j] = i * col + j;
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
本例使用vector<vector<int>>定義了一個二維數組,其中第一個vector表示行,第二個vector表示列。初始化時,將行數和列數傳入vector的構造函數,即可動態創建一個row行col列的二維數組。
該二維數組與普通數組相似,可以通過arr[i][j]訪問二維數組的元素。在遍歷二維數組時,可以使用雙重循環依次訪問二維數組的每個元素。
三、二維數組的動態調整
#include <vector>
using namespace std;
int main() {
int row = 3, col = 4;
vector<vector<int>> arr(row, vector<int>(col));
// 輸出原始數組
cout << "原始數組:" << endl;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr[i][j] = i * col + j;
cout << arr[i][j] << " ";
}
cout << endl;
}
// 動態添加一行,列數不變
row++;
arr.push_back(vector<int>(col));
cout << "添加一行後的數組:" << endl;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr[i][j] = i * col + j;
cout << arr[i][j] << " ";
}
cout << endl;
}
// 動態添加一列,行數不變
col++;
for (int i = 0; i < row; i++) {
arr[i].push_back(i * col + col - 1);
}
cout << "添加一列後的數組:" << endl;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
本例展示了如何使用vector動態調整二維數組的大小。首先定義了一個3行4列的二維數組,並初始化了所有元素。然後,通過arr.push_back增加一行,列數不變;通過arr[i].push_back增加一列,行數不變。每次增加完後,均需重新遍歷整個二維數組輸出。
四、與普通數組的對比
使用vector實現二維數組,優點在於動態調整大小方便,不需要手動釋放內存。同時,vector的操作比普通數組更加靈活,例如vector支持動態追加元素,可以方便地進行插入和刪除。相比之下,使用普通數組實現二維數組會有許多不便之處,例如需要手動申請和釋放內存,無法進行動態調整等。
原創文章,作者:SCKY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147278.html