You should use RAII instead of manually managing your memory, see
Nexus' awesome article.
That being said, you most likely want to store the textures rather than the sprites. Sprites are usually bound to entities and thus I'm not sure what a SpriteManager would really do.
Also, this:
spriteCollection[spriteCollection.size() - 1]->setTexture(*tmpTexture);
Could be written way safer and more expressive like this:
spriteCollection.back()->setTexture(*tmpTexture);
You might want to add an asser to the getSprite function and make the index of an unsigned type:
assert(spriteCollection.getSize() > index);
That way, if the index is out of bound (since unsigned it can only be positive), it would fail in your own assert.