Mảng hai chiều trong C++ là một cấu trúc dữ liệu cho phép lưu trữ dữ liệu theo dạng bảng, với các hàng và cột. Mỗi phần tử trong mảng có thể được truy cập thông qua chỉ số hàng và cột. Dưới đây là phần giải thích chi tiết về mảng hai chiều trong C++, kèm theo ví dụ và một số bài toán liên quan.
Để khai báo một mảng hai chiều trong C++, bạn có thể sử dụng cú pháp sau:
type arrayName[rowSize][columnSize];
type
: Kiểu dữ liệu của các phần tử (int, float, char, v.v.).arrayName
: Tên của mảng.rowSize
: Số lượng hàng.columnSize
: Số lượng cột.#include <iostream> int main() { // Khai báo mảng 2 chiều 3x4 int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; // In ra các phần tử trong mảng for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { std::cout << arr[i][j] << " "; } std::cout << std::endl; } return 0; }
#include <iostream> int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; int total = 0; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { total += arr[i][j]; } } std::cout << "Tổng các phần tử: " << total << std::endl; return 0; }
#include <iostream> int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; int max = arr[0][0]; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { if (arr[i][j] > max) { max = arr[i][j]; } } } std::cout << "Phần tử lớn nhất: " << max << std::endl; return 0; }
Chuyển vị ma trận là quá trình đổi chỗ hàng và cột của một ma trận. Dưới đây là ví dụ thực hiện chuyển vị ma trận 2×3 thành ma trận 3×2.
#include <iostream> int main() { int arr[2][3] = { {1, 2, 3}, {4, 5, 6} }; int transpose[3][2]; // Thực hiện chuyển vị for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { transpose[j][i] = arr[i][j]; } } // In ra ma trận chuyển vị std::cout << "Ma trận chuyển vị:\n"; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 2; ++j) { std::cout << transpose[i][j] << " "; } std::cout << std::endl; } return 0; }
std::vector
).arr[i][j]
, trong đó i
là chỉ số hàng và j
là chỉ số cột.Mảng hai chiều là một công cụ mạnh mẽ trong C++ cho việc lưu trữ và xử lý dữ liệu dạng bảng. Việc hiểu cách sử dụng và thao tác với mảng hai chiều là rất quan trọng trong lập trình, đặc biệt khi làm việc với dữ liệu phức tạp hơn như hình ảnh, ma trận toán học, hoặc bảng tính. Hy vọng rằng các ví dụ và bài toán trên sẽ giúp bạn nắm rõ hơn về cách làm việc với mảng hai chiều trong C++.