You should always include the header files containing the definitions of the class that you are using because if the implementation of your standard library includes <string> in <iostream>, other compilers with different library implementations may not have this.
When you #include a standard header you are just typing an extra line with no other issues as headers are guarded.
So: include all the headers that you need