能够直接用cout但在iostream里面,它所定义的东西都在名字空间std里面,因此你必须加上using namespace std才能使用cout 通常一个C++的老的带“.h”扩展名的库文件,好比iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进以外,还有一点就是后者的东东都塞进了“std”名字空间中。ios
但惟独string特别。问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫作“string.h”的头文件,包含一些经常使用的C字符串处理函数,好比楼主提到的strcmp。 这个头文件跟C++的string类半点关系也没有,因此并不是的“升级版本”,他们是毫无关系的两个头文件。 函数