C++ std::字符串与c+中的字符串+;
可能的重复项:C++ std::字符串与c+中的字符串+;,c++,string,std,C++,String,Std,可能的重复项: 我一直在一堆不同的论坛上徘徊,我似乎每次都能看到这个弹出窗口。这是一个非常初级的问题 我通常用 #include<string> using namespace std; string x; 这样做的目的是什么?这是一种好的做法还是有一些功能?如果您使用了名称空间std在您的代码之前,它是相同的。与前面已经说明的另一个答案一样,除非您导入整个std命名空间或std::string(见下文),否则必须使用std: 在我看来,最好使用std::string而不是s
我一直在一堆不同的论坛上徘徊,我似乎每次都能看到这个弹出窗口。这是一个非常初级的问题 我通常用
#include<string>
using namespace std;
string x;
这样做的目的是什么?这是一种好的做法还是有一些功能?如果您使用了
名称空间std代码>在您的代码之前,它是相同的。与前面已经说明的另一个答案一样,除非您导入整个std
命名空间或std::string
(见下文),否则必须使用std:
在我看来,最好使用std::string
而不是string
,因为它明确表明它是std::string
而不是其他字符串实现
如果您喜欢只编写string
,我建议您使用使用std::string
而不是使用名称空间std
仅将实际需要的内容导入全局命名空间。如果它们不是,请使用命名空间std
,然后,必须使用<代码> STD::String < > > > <代码>字符串> <代码>:< Stry,因为它位于命名空间STD >中,所有C++标准库函数、类和对象所在的命名空间。
在代码中,您已经使用名称空间std显式地添加了行
,它允许您使用标准名称空间中的任何内容,而无需使用std::
前缀。因此,您可以使用缩写string
引用std::string
(字符串类型的真实名称),因为编译器知道在命名空间std
中查找它
string
和std::string
之间没有功能上的区别,因为它们是相同的类型。也就是说,有时您更喜欢std::string
而不是string
。例如,在头文件中,通常不认为使用名称空间std放置行
(或者使用任何名称空间),因为它会导致包含该头的文件中的名称变得不明确。在此设置中,您只需在标题中包含,然后使用std::string
引用字符串类型。类似地,如果std::string
和其他string
类型之间存在任何歧义,使用名称std::string
将消除歧义
是否使用名称空间std包含行代码>是一个有点争议的话题,许多程序员强烈支持或强烈反对它。我建议你使用任何你觉得合适的方式,并确保在处理大型项目时采用任何编码约定。正如前面所说的一样。但只是在句法上
根据我的经验,使用全名更有用
std::string
无论您需要它,或添加一个显式
using std::string;
在源文件的开头
这样做的好处是,源文件的依赖关系更容易观察到。如果你加一个
using namespace std;
这意味着您的代码可能依赖于该命名空间中的任何内容。的可能重复。另请看。我做了一次搜索,但没有找到那些问题。大家好。string
的全名是::std::string
,但没有人使用它。这里没有说的,实际上是回报,是在声明使用std::string之后
,您可以直接编写,例如string s=“foo”代码>。
using namespace std;