>> But I think that regardless of whether you have using namespace std; or not you can still type std::map
True, but then there would be no point to the using directive.
>> Can you use both styles?
Use a using declaration (e.g. using std::cout) if you want to only bring in some of the names. Consistency is important when determining a coding style, so it rarely makes sense to do both in the same place.