除了 cout 和 endl 之外,std:: 与什么一起使用?

What is std:: used in conjunction with aside from cout and endl?

我的程序最初使用 using namespace std; 但我从很多人那里听说这是不好的编程习惯所以我想改掉这个习惯。我将程序中的所有 coutendl 更改为 std::coutstd::endl;

除了 coutendl,还有什么使用命名空间 std?例如:我的程序中有向量和字符串;他们使用 std:: 吗?

列表如果不是太长或太麻烦就更好了。

将整个 std 命名空间转储到您的程序中可能不是最明智的选择,但我不会因为使用 std 中的特定元素而感到困扰。因此,您可以使用 using std::coutusing std::endl 等而不是编写 using namespace std。在我看来,必须限定大量代码并没有帮助提高可读性。

至于std中的内容,这是一个很长的列表,包括所有STL。只需尝试编译并查看编译器在哪里抱怨。

For example: I have vectors and strings in my program; do they use std::?

是的。向量和字符串是标准库的一部分。 std 命名空间的成员在 standard library.

A list would be nice if it's not too long or too much of a hassle.

我不能给你一个长而简明的清单。但我可以告诉你如何找到标准库的成员。例如,以您的其他问题为例。字符串和向量是标准库的一部分吗?

http://en.cppreference.com/w/

如果我们转到此处,单击 'Strings library',我们实际上可以看到我们可以在 C++ 程序中使用的不同类型的字符串。这个过程对于向量也是一样的,在'Containers library'部分我们可以看到vectorlistmap

如果您有 IDE,您还可以通过在语句前加上 std:: -

查看标准库的成员

虽然您必须包含一个匹配的头文件才能看到标准库的成员,但头文件的命名与您期望的一样,

#include <list>
#include <vector>
#include <string>

简而言之:
对于 C++ 标准库中的 everything

其中包括数据结构、算法、输入输出函数、type_traits、字符串操作,几乎所有您可以在 C 标准库中找到的内容...。你可以找到一个列表,例如在 cppreference.com

C++标准库提供的几乎所有类型和函数都在命名空间std中。粗略地说,这包括文件名中没有 .h 的标准 header 中的所有内容 - 例如 <vector><iostream>(引入 std::cout)、<string>std::string),<algorithm>(标准算法),以及所有其他标准 C++ header 文件。它不包括 C 标准库(<stdio.h><stdlib.h> 等),尽管它们在 C++ 标准库(<cstdio><cstdlib> 等)中具有等效项将它们的声明放入命名空间 std.

写清单没有意义。如果您正在使用 C++ 标准库的任何部分,您将使用命名空间 std。所以任何对C++标准库的引用都是事实上的列表。

有几个例外(例如,标准 header 中的名称被指定为宏),但这种情况很少见。