众所周知, 命名空间 std
包含大部分的模板, 在 C++ 中起到举足轻重的重要性.
但 using namespace std
真的好使吗?
其他人给的解释
std命名空间的使用说明 - 常规 - 信友队论坛
应该没有版权吧
这之中给的解释, 是在平时可以用 using namespace std
.
但我不认同
我认为
你在搞开发的时候, 不应该使用 using namespace std
.
你在写头文件的时候, 不应该使用 using namespace std
.
在平时用没什么大事.
举例1
GitHub 上, EA 专门给人做了 namespace EASTL
. 这时候, 你要是写:
// ...
using namespace std
// ...
using namespace eastl
// ...
int main()
{
vector<int> all;
// ...
}
这时候, 你用的时那个 vector
?
(可能是 std::vector
, 或 eastl::vector
)
举例2
namespace std
里有函数 search
的定义. 我一般写深搜
int search(int* const all, bool* const visit, const int& size, /*...*/);
这也会出错.
总结
综上所述, 你平时不应该多写 using namespace std
(至少你平时不应该依赖).