Please note that this has to be a reference:
Ok, first question: why? Is it using an object that someone else owns? In which case it absolutely should be a reference (maybe even a const reference, if you're just iterating over the collection). If that is the case, then the compiler is giving you the answer. Your reference must be initialised when the containing object is constructed. The simplest way to do this is to pass vector you want to refer to in the constructor arguments as L.Spiro has demonstrated.
If, on the other hand you actually want polymorphic behaviour, you should follow L. Spiros second example, but just be aware of who has the responsibility for the memory (i.e. the ownership semantics).