C++ doesn't have a lot of namespacing below 'std', so if you go around using everything you need, you end up with a lot of short, possibly conflicting names in scope.
Java avoids this somewhat because functions are always in a class, so there is a little bit of extra namespacing, even if you've imported the class.