let's say I have a 

```
vector<vector<foobar> > vector2D(3);
for(int i=0;i<3;i++)
   vector2D[i].resize(3);

```

So, a 3x3 vector containing 9 elements of type foobar in total.

I know want to pass "vector2D" to a function to modify some values in "vector2D".
For example, if foobar contains

```
struct foobar{
       int *someArray;
       bool someBool;
}

```

I want to pass "vector2D" to a function that modifies vector2D like this:

```
vector2D[0][0].someArray = new int[100];
vector2D[0][0].someArray[49] = 1;

```

The function shouldn't return anything (call by reference).

Is this even possible?