Два способа использования объявления использования:
using std::string;
using std::vector;
или
using namespace std;
какой путь лучше?
========= Удовлетворительный ответ Ниже =============
Короче говоря, использование деклараций внутри функций безвредно, если предоставляется локальная медицинская помощь, тогда как глобальные объявления использования опасны, поскольку они могут привести к пересечению пространств имен, тем самым запутывая компилятор.
Часто нам нравится использовать каждое имя из пространства имен без квалификация. Это может быть достигнуто путем предоставления декларации использования для каждого имени из пространства имен, но это утомительно и требует дополнительная работа каждый раз, когда новое имя добавляется или удаляется из Пространство имен. В качестве альтернативы мы можем использовать директиву, чтобы каждое имя из пространства имен доступно в нашей области без квалификация. [...] [...] Использование директивы using для создания имен из часто используемая и хорошо известная библиотека, доступная без квалификация - популярный способ упрощения кода. Это техника, используемая для доступа к средствам стандартной библиотеки во всем этом книга. [...] Внутри функции можно использовать директиву с использованием но следует уделить внимание глобальным используя-директивы, потому что чрезмерное использование может привести к тому, что пространства имен были введены во избежание. [...] Следовательно, мы должны будьте осторожны с использованием директив в глобальном масштабе. В частности, не размещайте директиву-указатель в глобальной области видимости в файле заголовка за исключением особых обстоятельств (например, для содействия переходу) потому что вы никогда не знаете, где заголовок может быть включен.
Кредит Джонатана Вакли за цитату.