I have come across a rather unusual issue in my code. A `struct` needs to be able to access instances of itself.

Relavent portion of code:

```
struct crtr {
  char f;
  void foo() {
    for(int i=0; i<creatures[f].size(); i++) {/*code that accesses creatures[f][i]*/}
  }
};

vector<crtr> creatures[10];

```

Of course, this is nowhere close to working - `crtr.foo()` requires `creatures`, while `creatures` requires `crtr`. Is there some way to initialize `creatures` before `crtr`, perhaps changing the `vector`s' data type? (preferably with minimal pointers, if possible)