C++ Vector memory management in Game of Life
One rules of thumb to write idiomatic C++ is:


  Use references where you can and pointers where you have to.


It's especially true for argument passing to a variable.
In your case, you have the choice, so use references, for all the reasons cited by Ilya and also just because you won't have any * to put everywhere in your function. Your code might be clearer that way.