Avatar ·

Por que não se deve escrever `using namespace std;` em C++ e quais são as alternativas?

Olá! Comecei a estudar C++ e em todas as aulas e exemplos de código vejo constantemente a linha `using namespace std;`. Estou acostumado a sempre escrevê-la no início do programa, porque sem ela tenho que adicionar `std::` em toda parte, o que parece inconveniente. Por exemplo: ```cpp #include #include #include using namespace std; int main() { vector numbers = {5, 2, 8, 1, 9}; sort(numbers.begin(), numbers.end()); cout << "Ordenado: "; for (int n : numbers) { cout << n << " "; } cout << endl; return 0; } ``` Mas recentemente li que programadores experientes aconselham nunca usar `using namespace std;` em projetos reais. Supostamente, isso pode levar a erros difíceis de detectar. Tentei escrever o código sem essa diretiva, e ele ficou verboso: ```cpp std::vector numbers = {5, 2, 8, 1, 9}; std::sort(numbers.begin(), numbers.end()); std::cout << "Ordenado: "; ``` Acho que a legibilidade do código pior