论 std:: 的重要性

众所周知, 命名空间 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 (至少你平时不应该依赖).