我有这个基本的怀疑。
STL标头没有.h
扩展名。
#include <vector>
#include <map>
这背后有什么具体原因吗?有人知道这背后的历史,请分享。
修改:
@GMan找到Michael Burr's answer 这解决了这个问题。
答案 0 :(得分:10)
这一切都与名称空间有关。 C ++标准头文件的.h对应文件通常#includes正确的C ++标准头文件(没有.h扩展名)然后发出一堆使用(类似这样):
文件:iostream.h
#include <iostream>
using std::iostream;
using std::ostream;
using std::ios;
...
而没有.h扩展名的头文件不会使用所有已定义的类和类型污染名称空间。