Quote: "If you use pointers for this kind of thing you're always the one in charge of allocation and deallocation, and it leaves a lot of room for mistakes. Thus I suggest using std::vector<Sprite>."
There's a neat garbage collection template class in the STL called auto_ptr. I've never used it personally, but it sounds pretty neat - I'll give it a try some time.
Quote: "Vectors allow you to access elements by index using the [] operator, just like with regular arrays. I'm not sure if a vector is a best thing to use though, as it means you have to manually find a free slot yourself. You'd be better off using some kind of linked list, and store pointers to links rather than storing sprite numbers. I'm not sure how one would go about implementing this with std::list though."
Not sure what you're saying about manually having to find free slots, unless you are talking about deactivating sprites and then having to replace them later with active ones, which yeah, would including some iteration.
As for using a linked list, I believe if was you Ben that told me it's very slow to move through them, heheh.
I say stick to vectors, but lose the active/inactive stuff. You can use iterators to delete elements in the vector. Of course, if you ever want to keep track of a single sprite, this would take extra effort, but I don't see where this would get too cumbersome.