I would suggest instead of using a std::vector, you use a std::map.
This is what I do in similar situations where I want to keep a "heap" of world objects, but still be able to identify any one of them in O(1) time. In this case, each sprite would maintain a unique identifying key value which you could use to access it in the map.
Keep in mind you can still iterate through a std::map the same way you would as a vector, so you can still use it the same way. But this way, if you want a specific sprite, you can refer directly to it by its key value.