I'm sort of lost on the no need to de-allocate and delete part? Does this mean you are allocating the chunk once and then simply using it for different buffers? If this is the case I don't think vector is what you need. Of course you could store a record structure in a vector indicating the starting offset of the chunk and the chunk size. This would be used as a lookup table into the large buffer.
If this is the type of setup you are talking about then there are tree structures that can handle this type of sharing much more efficiently.
std::vector<BUFFER_CHUNK *> m_vChunks;