Here is what I’m trying to do. I have a std::vector with a certain number of elements, it can grow but not shrink. The thing is that its sort of cell based so there may not be anything at that position. Instead of creating an empty object and wasting memory, I thought of instead just NULLing that cell in the std::vector. The issue is that how do I get pointers in there without needing to manage my memory? How can I take advantage of not having to do new and keep track of the pointers?
Here is what I’m trying to do. I have a std::vector with a certain
Share
How large are the objects and how sparse do you anticipate the vector will be? If the objects are not large or if there aren’t many holes, the cost of having a few “empty” objects may be lower than the cost of having to dynamically allocate your objects and manage pointers to them.
That said, if you do want to store pointers in the vector, you’ll want to use a vector of smart pointers (e.g., a
vector<shared_ptr<T>>) or a container designed to own pointers (e.g., Boost’sptr_vector<T>).