#include <iostream>
using namespace std

在最开始接触C++的时候,我始终不明白为什么在所有程序开头都要加上这两句,随着后续对类的理解,以及其他语言比如python的学习,慢慢的就能够理解了。

这两行代码旨在简化程序,一般来说编译器都能够识别这两句,否则说明编译器不遵循C++98标准,实际上如果不加这两句代码也是可以的,但是需要对后续的代码进行相应的修改。

头文件
#include <iostream>实际上是一个预处理语句,该编译指令会将iostream文件的内容加到我们写的这个程序当中,也就是说我们所编写的程序实际上要和一个写好的文件结合起来,在编译的时候就会将这个iostream中的内容替换掉这一句,相当于作文头帮我们写好了,我们只要接着往下写就可以。那么这个iostream到底代表什么呢?io实际上指的是输入和输出,stream是流,合起来就是输入输出的数据流,iostream文件中有多个定义可以帮助我们实现信息的输入和输出,比如说cout和cin,加上iostream后我们就可以使用这两个语句用来输入输出。

在C中头文件都是.h结尾的,但是在C++中,通常用c来表示,比如说math.h变成cmath,iostream.h在旧风格的C++中有使用,但是现在一般都不用了,加不加.h后缀实际上只是一个风格的不同,没有本质的区别。

命名空间
但是如果我们用的是iostream而不是iostream.h就需要在后面加上

using namespace std

命名空间有助于我们在编写大型程序时或者将各个厂商的代码组合起来时更加容易,比如说两个公司都写了一个叫wanda()的函数,但是作用是不相同的,那么我们在程序中直接调用wanda()的时候怎么分辨出调用的是哪个wanda()呢?这就需要我们就需要用命名空间来指定我们调用的是哪个函数。A公司的wanda()我们可以把它的定义放到一个名为A的命名空间中,这样我们使用A的wanda()可以写成A::wanda(),同理也可以用B::wanda()调用另一个函数。
理解了这个我们再来看std,std实际上是C++自身提供给我们的一个命名空间,如果我们不指定使用标准命名空间,那我们在后续使用cin、cout等指令的时候就需要写成std::cout或std::cin,当添加了using namespace std之后就说明我们用的是哪里的函数,这样就可以省略std::了,默认使用的就是这里面的函数。