每当我阅读有关C++的书籍时,我都会看到一个“using namespace std”的示例。
我想知道在C++中是否还存在其他有用的命名空间?
我想知道在C++中是否还存在其他有用的命名空间?
C++标准库中的所有内容都在std
命名空间中(或者是在std
的嵌套命名空间中)。
当然,其他库使用不同的命名空间。您需要查阅您正在使用的其他库的文档,以确定它们使用的命名空间。
尽管如此,使用指令通常是不好的做法。最好使用using声明从一个命名空间中使用单个名称。这对于std
命名空间尤为重要。在std
命名空间中有许多常用的名称,很容易遇到难以解决的问题,其中您尝试引用自己的函数或类并意外地引用了一个标准库函数或类。例如,以下是错误的:
using namespace std;
cout << "Hello world" << endl;
这更好:
using std::cout;
using std::endl;
cout << "Hello world" << endl;
在我看来,当你在整个程序中使用完全限定的名称时,代码通常会更加清晰;这使得实体的来源更加清晰,并且留下了较少的错误空间:
std::cout << "Hello world" << std::endl;
namespace po = boost::program_options
,而不是using namespace po = boost::program_options
) - Billy ONealstd::rel_ops
命名空间。它定义了 operator!=
、operator>
、operator<=
和 operator>=
。operator<
和 operator==
。然后,由 std::rel_ops
提供的运算符将根据这两个运算符进行操作。这是C++标准库的命名空间。据我所知,这是您“开箱即用”的唯一命名空间。其他所有命名空间都必须由您自己定义或从其他库中获取。