[英]What does std stands for?
我知道如果没有using namespace std
,并且你想写一个cout
,你需要有一个std::cout
。 std
代表什么? 为什么std
被广泛使用( std::vector
, std::cout
, std::cin
)?
std 代表“标准”。
std
命名空间中有这么多标准的东西的原因很简单:在命名空间之前,不同人编写的不同代码经常会使用相同的名称并导致冲突。 例如,我从 1994 年开始的饮料分配器程序可能有一个流类,它是橙色ofstream
流。 当新版本的 C++ 出现并添加了作为输出文件流的ofstream
时,我的程序将不再编译,或者它会崩溃。
好吧,orange-fanta-stream 很傻,但主要操作系统确实有 C 函数,称为open
、 close
和index
。 我敢肯定,很多人都试图将全局变量称为open
,然后他们的程序就崩溃了。
在 C++ 中,所有新的 C++ 标准的东西都在std::
中,所以只要我不在我的程序std
中调用某些东西,他们就可以在std::
中添加新的东西,它绝对不会导致这个问题。 不幸的是,C++ 从 C 继承的所有东西都在std::
之外,所以你仍然不能创建一个名为open
的全局变量(在 Linux 上),但至少这是一个开始。
它是为 C++ 标准库保留的命名空间。
历史上一个不错的选择:任何以std
开头的标记都保留在 C 中。这意味着早期的 C++ 编译器不会破坏现有的 C 代码。 当然,从那时起,语言就出现了分歧。 在词源上, std
是标准的缩写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.