我的程序最初使用的是using namespace std;
,但我听到很多人都认为这是糟糕的编程习惯,所以我想打破习惯。我将计划中的所有cout
和endl
更改为std::cout
和std::endl;
。
除cout
和endl
之外,使用命名空间std
的是什么?例如:我的程序中有向量和字符串;他们使用std::
吗?
如果不太长或太麻烦,列表会很好。
答案 0 :(得分:6)
例如:我的程序中有向量和字符串;他们使用
std::
吗?
是。矢量和字符串是标准库的一部分。 std
命名空间的成员位于standard library
。
如果不太长或太麻烦,列表会很好。
我不能给你一个冗长,简洁的清单。但我可以告诉你如何找到标准库的成员。例如,请回答您的其他问题。字符串和向量是标准库的一部分吗?
如果我们到这里,点击'Strings library',我们可以看到我们可以在C ++程序中使用的不同类型的字符串。对于向量,此过程是相同的,在“容器库”部分下,我们可以看到vector
,list
,map
等。
如果您有IDE,还可以通过使用std::
-
虽然您必须包含匹配的头文件才能看到标准库的成员,但标题按照您的预期命名,
#include <list>
#include <vector>
#include <string>
答案 1 :(得分:2)
将整个std命名空间转储到您的程序中可能不是最明智的选择,但我不会因使用std中的特定元素而感到困扰。因此,不是写using namespace std
,而是可以使用using std::cout
,using std::endl
等。在我看来,不得不批准很多代码并不能提高可读性。
至于std中的内容,这是一个非常长的列表,包括所有STL。只是尝试编译并查看编译器抱怨的位置。
答案 2 :(得分:1)
简而言之:
对于C ++标准库中的所有。
包括数据结构,算法,输入输出函数,type_traits,字符串操作,几乎可以在C标准库中找到的所有内容....你可以找到一个列表,例如在cppreference.com
答案 3 :(得分:1)
C ++标准库提供的几乎所有类型和函数都在命名空间std
中。粗略地说,这包括标准标题中的所有内容,其文件名中没有.h
- 例如<vector>
,<iostream>
(带来std::cout
),<string>
({ {1}}),std::string
(标准算法)和其他标准C ++头文件。它不包括C标准库(<algorithm>
,<stdio.h>
等),尽管它们在C ++标准库(<stdlib.h>
,<cstdio>
等)中具有等价物将他们的声明放入名称空间<cstdlib>
。
编写清单毫无意义。如果您使用的是C ++标准库的任何部分,那么您将使用命名空间std
。因此,对C ++标准库的任何引用都是事实列表。
有一些例外(例如标准标题中的名称被指定为宏)但这些很少见。