Ooops, somehow I missed that your class is a child of Drawable, my bad
Let me propose a different method to handle the projectiles, then. Take this with a grain of salt, as I'm a beginner at this.
You said that you have lag when creating the projectiles. It makes sense, as every time you shoot you create a new instance of Projectile (in which you must create the sprite, apply the texture and yada yada) and add it to the vector.
So, instead of adding/deleting projectiles to the vector, you could try having a fixed number of projectiles on the vector from the very beginning (let's say, 30) and never modify the vector afterwards. With the help of a counter (starting at 0), every time you shoot you set a flag of "projectiles[counter]" to "true" to indicate that said projectile is in the air, and increment the counter. When your counter gets to 30, set it to 0 to start the cycle again.
Only update, check collision and draw projectiles that are in the air (obviously). If a projectile collides with something, set the flag back to "false".
This way you cycle through a vector of projectiles without creating/deleting them, you just update its values. You create the illusion of shooting a lot of projectiles but in reality you use the same projectiles over and over again. Of course, this means that you can only have a certain amount of projectiles in the air at the same time.
Again, take this with a grain of salt. It may work or it may not, as I don't really now the real source of your lag with the code you posted. Hopefully it helps
EDIT: Still, I find it very hard to believe that just creating a projectile can cause that much lag. Either something else is wrong or your netbook is very slow.