关于std命名空间使用'using'似乎有不同的看法.
有人说使用' using namespace std',其他人说不要,而是先加上与' std::' 一起使用的std函数,而其他人则说使用这样的东西:
using std::string;
using std::cout;
using std::cin;
using std::endl;
using std::vector;
Run Code Online (Sandbox Code Playgroud)
对于要使用的所有std函数.
各自的优点和缺点是什么?
使用C++命名空间时,您更喜欢显式命名它们,如下所示:
std::cout << "Hello, world!\n";
Run Code Online (Sandbox Code Playgroud)
或者您更喜欢using namespace:
using namespace std;
cout << "Hello, world!\n";
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢后者,您是否在文件或功能范围内声明您的使用?
我个人更喜欢明确地命名它们 - 它更多的是打字,但是当使用命名空间的混合(例如std和boost)时,我发现它更具可读性.
例如,我知道我的代码中只需要std命名空间中的"cout",所以我将它称为:
using std::cout;
Run Code Online (Sandbox Code Playgroud)
所以我可以自由地使用它:
cout << "Using namespaces like a boss!" << std::endl;
Run Code Online (Sandbox Code Playgroud)
而不是将整个命名空间带到我的代码中.
因为我被告知使用命名空间是一种不好的做法,因为它可以与其他命名空间中的其他函数交叉(幸运的是,它不是我的情况,我仍然是学习编码,我在我的职业生涯的第二个学期),但我不想将std添加到一切,我想做"使用std :: cout"和其他类似的东西,这样我可以提高代码的可读性,这对我来说在某个时间点理解我的代码很重要.