I saw an example recently that looks like the following:

```
const size_t NDim = 3;  
double coords[NDim];

```

My question is straight forward. When does one use `size_t` vs an `int` or `unsigned int`? In this particular case, wouldn't the following be the equivalent as the above:

```
const unsigned int NDim = 3;  
double coords[NDim];

```