为什么我们使用“using namespace std”?我们可以使用#include <conio.h>吗?

时间:2016-10-19 04:21:06

标签: c++ std

我对如何在标头中使用std库感到困惑。何时使用哪个库。是“使用命名空间std” conio.h 不同.. ??或者他们是同一件事。 “iostream”“iostream.h”之间有什么区别?这些事让我很困惑......

2 个答案:

答案 0 :(得分:1)

  1. std是C ++标准库的命名空间 - 例如,string实际上属于此命名空间,因此string的全名是std::stringusing namespace std告诉编译器我们要访问此命名空间中的资源 - 向我们提供global,或直接访问它所拥有的string。有关详细信息,请查看Pete的评论。

  2. C ++标准库包含许多不同的包,其标题可以包含在其中,其中一个包含<iostream>,可以在此处找到更多std个标题:http://www.cplusplus.com/reference/ < / p>

  3. conio.h看起来像是一个不再受欢迎的旧版DOS专用C标题。

  4. iostream.h在某些时候被重命名为iostream作为标准:http://members.gamedev.net/sicrane/articles/iostream.html

  5. 另见:Why is "using namespace std" considered bad practice?

    感谢Pete!

答案 1 :(得分:0)

它只是让您使用 命名空间 std,这是大多数标准C ++标头库的命名空间。如果您使用它,则无需在访问时添加std::前缀,例如std::coutstd::cin,现在只有cout和{{ 1}}分别。

例如:

cin

现在使用// without using namespace std #include <iostream> int main() { cout << "Hello World"; // error std::cout << "Hello World"; // outputs Hello World return 0; }

using namespace std

#include <iostream> using namespace std; int main() { cout << "Hello World"; // outputs Hello World return 0; } 是一个C ++库,包含conio.hgetch()等函数。 putch()是一个预标准 C ++库,在引入名称空间之前使用。 iostream.h是一个标准库,其中包含iostreamcin等对象。