Okay, so here is your problem =)
FPS : the number of frame per second your game displays (you know that, but keep it in mind)
V-Sync : In order to make it simple : that's a option that tell the GPU to set the framerate the same that the screen speed. Most screens are 60Hz, that mean 60fps (60 images can be displayed each second).
So, the v-sync allow your computer to rest a bit. Indeed, instead of sending 400 (arbitrary number) frame per seconds to a CPU then to a screen that can only display 60 frames (you lose at most 340 frames here), it only send 60 frames (more or less, that's an average).
Activating it depends on the game and the computer :
- If you have a low computer with a new new game with amazing realistic graphics, well, it will be pretty slow anyway. But if you activate the v-sync, the GPU (then CPU) will try to have 60fps because your screen can. In that case it's maybe not a good idea.
- If you have a common or good computer and making a 2D game or a game that do not need the last graphic card, then your computer will not have any problem to have 60fps. So you will save some CPU and GPU (less work = less heat).
Look at sf::RenderWindow documentation to activate v-sync.
Fixed timestep is a vast subjet (but yet pretty simple to implement). I can only tell you to read some articles or books, there are plenty of them around the web.
Plus, SFML have a sf::RenderWindow::setFramerateLimit() that kinda allow to have timesteps, but I'm not sure that's the most efficient way to do it (I'm maybe mistaken, I just do not use it)
There are also articles or people around here that can tell you better than me the pro and the con of v-sync or the best way to have fixed timesteps. But here is the idea.