Khởi tạo VPS trong 60 giây · Hoàn tiền trong 7 ngày · Hỗ trợ kỹ thuật 24/7
Bitech Bitech
Hướng dẫn

Hướng dẫn chi tiết mảng 2 chiều trong C++: Khai báo, Khởi tạo và Thao tác

Tìm hiểu cách hoạt động của mảng 2 chiều trong C++ từ khai báo, khởi tạo, duyệt mảng bằng vòng lặp đến việc sử dụng vector 2 chiều linh hoạt.

Giới thiệu về Mảng 2 chiều trong C++

Mảng hai chiều (2D Array) trong C++ là một tập hợp các phần tử có cùng kiểu dữ liệu, được tổ chức dưới dạng bảng bao gồm các hàng và cột. Cấu trúc này tương tự như một ma trận trong toán học, rất thích hợp để xử lý các bài toán dạng lưới, bản đồ đồ họa hoặc tính toán ma trận.

Bài viết này sẽ hướng dẫn bạn các thao tác căn bản từ khai báo, khởi tạo đến cách duyệt và làm việc với mảng 2 chiều trong C++.


1. Khai báo và Khởi tạo Mảng 2 chiều

Cú pháp chung để khai báo mảng 2 chiều cố định kích thước như sau:

kiểu_dữ_liệu tên_mảng[số_hàng][số_cột];

Các cách khởi tạo thông dụng:

  • Khởi tạo đầy đủ giá trị ngay khi khai báo:
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
  • Khởi tạo bỏ qua chỉ số hàng (C++ sẽ tự tính toán):
int arr[][3] = {
    {10, 20, 30},
    {40, 50, 60}
};

2. Duyệt Mảng 2 chiều

Để truy cập từng phần tử trong mảng 2 chiều, chúng ta sử dụng chỉ số hàng và chỉ số cột (bắt đầu từ 0). Việc duyệt toàn bộ mảng thường dùng hai vòng lặp for lồng nhau.

Mã nguồn mẫu duyệt và in mảng:

#include <iostream>
using namespace std;

int main() {
    int rows = 3, cols = 3;
    int matrix[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    cout << "Danh sách phần tử trong mảng 2D:" << endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

3. Thao tác cơ bản: Tính tổng các phần tử

Bạn có thể dễ dàng tính tổng tất cả phần tử trong ma trận bằng cách cộng dồn giá trị qua từng vòng lặp:

int sum = 0;
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        sum += matrix[i][j];
    }
}
cout << "Tổng tất cả phần tử: " << sum << endl;

4. Mảng 2 chiều động với std::vector

Đối với mảng tĩnh, số hàng và số cột phải cố định khi biên dịch. Để làm việc linh hoạt hơn với dữ liệu có kích thước thay đổi trong quá trình thực thi, bạn nên sử dụng std::vector 2 chiều.

Ví dụ triển khai std::vector 2D:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int rows = 3, cols = 4;
    
    // Tạo vector 2D kích thước 3x4, khởi tạo giá trị ban đầu bằng 0
    vector<vector<int>> vec(rows, vector<int>(cols, 0));

    // Gán giá trị cho một phần tử
    vec[1][2] = 99;

    // Lấy kích thước hàng và cột động
    cout << "Số hàng: " << vec.size() << endl;
    cout << "Số cột: " << vec[0].size() << endl;
    cout << "Giá trị tại [1][2]: " << vec[1][2] << endl;

    return 0;
}

Tóm tắt

Sử dụng thành thạo mảng 2 chiều giúp bạn dễ dàng lưu trữ và giải quyết các bài toán nâng cao trong C++. Đối với mảng đơn giản có kích thước cố định, mảng C-style tĩnh là lựa chọn nhanh chóng. Tuy nhiên, nếu chương trình cần quản lý bộ nhớ linh hoạt, hãy ưu tiên sử dụng std::vector 2 chiều.


Ngày phát hành: 16/06/2026
Nguồn: www.digitalocean.com