// ── CREATE & INIT ────────────────────────────────────────────────
int m = 3, n = 5;
int arr[m][n];
 
memset(arr, -1, sizeof(arr));            // fill all with -1
memset(arr,  0, sizeof(arr));            // fill all with 0
// NOTE: memset works reliably only for 0 and -1
 
// ── TRAVERSE ─────────────────────────────────────────────────────
for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++)
        cout << arr[i][j] << " ";
    cout << "\n";
}
 
// ── 1D ARRAY ─────────────────────────────────────────────────────
int a[8] = {0};                          // all zeros
for (int i = 0; i < 8; i++)
    cout << a[i] << " ";
 
// ── 2D VECTOR (dynamic) ──────────────────────────────────────────
vector<vector<int>> grid(m, vector<int>(n, 0));  // m x n, all zeros
grid[i][j] = 5;