What are good alternatives to "using namespace std;"?
This question already has an answer here:
 The main alternatives to bringing in everything from the std namespace into the global one with using namespace std;  at global scope are:  
 Only bring in the actual names you need.  For example just bring in vector with using std::vector;  
 Always use explicit namespace qualifications when you use a name.  For example std::vector<int> v;  (in headers, this should almost always be the only thing you do)  
 Bring in all names, but in a reduced scope (like only inside a function).  For example void f() { using namespace std; vector<int> v; }  void f() { using namespace std; vector<int> v; } void f() { using namespace std; vector<int> v; } - this does not pollute the global namespace.  
 The alternative is to write std:: everywhere.  It's frowned upon because of name collisions and because it's unclear.  If you just write vector I don't immediately know if you're using some math 3d vector or the standard library vector or something else.  If you write std::vector it's clear.  If you using namespace std , vector may collide with my own 3d math class called vector .  
上一篇: 为什么C ++ STL如此严重地基于模板? (而不是*接口*)
下一篇: “使用名称空间标准”有什么好的选择?
