I want to remove, if possible, the includes of both and from my class header file. Both string and vector are return types of functions declare
Standard containers often have additional default template parameters (allocators, etc.) so this will not work. For example, here's a snippet from GNU implementation:
template > class vector : protected _Vector_base<_Tp, _Alloc> { ... };