I am looking at my homework for c++ and having some trouble understanding a part of the code. The code is creating a 2d array and wants to know how many times the elements from 1-9 are repeated.
#include <iostream>
using namespace std;
const int r = 3;
const int c = 4;
void frequency (int a[r][c]);
int main() {
    int elems [r][c] = {{1, 1, 3, 4}, {2, 3, 4, 5}, {6, 9, 9, 9}};
    frequency(elems);
    return 0;
}
void frequency(int  a[r][c]){
    int arr[10] = {};
    for(int i  = 0; i < r; i++){
        for(int j = 0; j < c; j++){
            arr[a[i][j]]++;
        }
    }
    for(int i = 1; i < 10; i++){
        cout << i << " is repeated " << arr[i] <<  " times." << endl;
    }
}
I don't understand how the line arr[a[i][j]]++; works -- how does it act as a counter for elements that are repeated?
 
    