I don't know if this is just me, but I don't need to include some libraries in order to use their contents, for example <string> and <locale>. Why is that?
It is the result that other libraries that you included in their turn include these libraries. Nevertheless it is a good style of programming to explicitly specify libraries that are used in the program.