百度
360搜索
搜狗搜索

命名空间std,C++的std是类吗?详细介绍

本文目录一览: c++中Std有什么用

std是一个命名空间,C++标准函数或者对象都是在std中定义的,例如cin和cout,当我们要使用标准库的函数或对象时都需要用std来进行限定。
使用std时可通过using namespace std或者std::要注意在#include

虽然不存在类std,但是有cin和cout的相关函数,所以不需要使用命名空间,可以直接使用,例如:

#include

int main (){

cout << "Hello World! "<
<endl
cout << "I'm a C++ program" <
<endl
扩展资料:

1、使用命名空间 std:

#include

int main(){std::printf("http://c.biancheng.net\n");return 0;}

2、不使用命名空间 std:

#include

int main(){printf("http://c.biancheng.net\n");return 0;}

这两种形式在 Microsoft Visual C++ 和 GCC 下都能够编译通过,也就是说,大部分编译器在实现时并没有严格遵循标准,它们对两种写法都支持,程序员可以使用std也可以不使用。

std是一个类(输入输出标准),它包括了cin成员和cout成员,using name space std ;以后才能使用它的成员。#include

中不存在类std,但是他又cin,out的相关函数,不需要使用命名空间了。而第二种标准#include

,它包含了一个类,在类的使用之前要预处理一下,using namespace std;就是这个功能,然后你就可以使用cin,cout这两个成员函数了,假设你不使用预处理(using namespace std;),麻烦加上std::cin或者std::cout再去使用它的成员函数(头文件中存在这个类)

C++?std是一个类(输入输出标准),它包括了cin成员和cout成员,using name space std ;以后才能使用它的成员。#include

中不存在类std,但是他又cin,out的相关函数,不需要使用命名空间了。而第二种标准#include

,它包含了一个类,在类的使用之前要预处理一下,using namespace std;就是这个功能,然后你就可以使用cin,cout这两个成员函数了,假设你不使用预处理(using namespace std;

谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:

std::cout << std::hex << 3.4 << std::endl;

2、使用using关键字。

using std::cout;

using std::endl;

以上程序可以写成

cout << std::hex <<3.4 << endl;

3、最方便的就是使用using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:

cout << hex << 3.4 << endl;

std是一个命名空间,C++标准函数或者对象都是在std中定义的,例如cin和cout,当我们要使用标准库的函数或对象时都需要用std来限定。

使用std可通过using namespace std或者std::

要注意在#include

虽然不存在类std,但是有cin和cout的相关函数,所以不需要使用命名空间,可以直接使用,例如:

#include

int main (){

cout << "Hello World! "<
<endl;
cout << "I'm a C++ program" <
<endl;
}

扩展资料:

std在C++中的使用方法:

一是直接用using namespace std,如

#include

using namespace std;

int main ()

{

cout << "Hello World! "<
<endl;
cout << "I'm a C++ program" <
<endl;
}

另外就是使用std::,例如:std::cout
</endl;
</endl;

</endl;
</endl;

</endl
</endl

VC++中using namespace std有什么用的

1、std 是一个命名空间.不同的命名空间可以有相同的类名被定义
2、using namespace std;:就是指明下面的程序使用std。
3、如果不用这句指明的话就要用std::string(string是std空间中定义的也可以在全局空间中定义,只要名字空间不一样即可..)
4、否则可以默认名字空间中有std,便不用std::来修饰它是C++新标准中有的,解决多人作编大程序时名字冲突问题。
5、比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人。 如果你用#include

就不需写这句话(旧标准)。

6、但是如果你用#include

就必须要写。

扩展资料

Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。

VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017。

它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。

还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。

这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。

参考资料

百度百科-Microsoft Visual C++

using namespace std这条语句是为了告诉编译程序使用std命名空间。

C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念。标识符就被限制在特定的范围(函数)内,不会引起命名冲突。

这条using语句通知编译程序,程序需要使用std命名空间,C++标准程序库中的所有标识符都被定义于一个名为std的命名空间中。

举一程序例

我们可以看出,第二条语句声明了我们可以使用标准程序库的标识符。

如果没有第二条语句,我们就无法正常的使用cout,只能写成 std::cout<<"Hello world"。

也就是说,每一次运用标识符;都要在前面加上std; 具体格式 std::格式符。

所以,为了方便,我们在开始声明了using namespace std。

扩展资料namespace是指标识符的各种可见范围。命名空间用关键字namespace 来定义。命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。

参考资料百度百科-using namespace std

std 是一个命名空间..

不同的命名空间可以有相同的类名被定义 ..

using namespace std;

就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的

也可以在全局空间中定义,只要名字空间不一样即可..)..

否则可以默认名字空间中有std.便不用std::来修饰

它是C++新标准中有的,解决多人作编大程序时名字冲突问题。比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人

如果你用#include

就不需写这句话(旧标准)。但是如果你用

#include

就必须要写。

std是一个命名空间

C++中引入命名空间的主要是为了处理程序中常见的命名冲突,它是由ANSI C++引入的可以由用户命名的作用域。所谓命名空间,实际上就是一个由程序设计者命名的内存区域 ,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。如:

namespace ns //指定命名空间ns

{

int a;

double b;

}

namespace是定义命名空间所必须写的关键字,ns是用户自己指定的命名空间的名字(可以用任意的合法标识符),在花括号内是声明块,在其中声明的实体称为命名空间成员(namespace member)。现在命名空间成员包括变量a和b,注意a和b仍然是全局变量,仅仅是把他们隐藏在指定的命名空间中而已。如果在程序中要使用变量a和b,必须加上命名空间名和作用域分辨符“::”,如ns::a,ns::b。这种用法称为命名空间限定,这些名字(如ns::a)称为被限定名。

C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是设立若干子目录,把文件放到不同的子目录中,不同子目录中的文件可以同名,而调用文件时应指出文件路径。

命名空间的作用是建立一些相互分隔的作用域,把一些全局实体分隔开来,以免产生名字冲突。

可以根据需要设置多个命名空间,每个命名空间名代表一个不同的命名空间域,不同的命名空间不能同名。这样可以把不同的库中的实体放到不同的命名空间中,或者说,用不同的命名空间把不同的实体隐蔽起来。过去我们用的全局变量可以理解为全局命名空间,独立于所有有名的命名空间之外,它是不需要用namespace声明的,实际上是由系统隐式声明的,存在于每个程序中。

声明一个命名空间时,花括号内不仅可以包括变量,而且还可以包括一下类型:

变量(可以带有初始化)

常量

函数(可以是定义或声明)

结构体



模板

命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)

例如:

namespace ns1

{

const int RATE=0.08;

double pay;

double tax()

{

return a*RATE;

}

namespace ns2

{

int age;

}

}

输出命名空间ns1中的成员的数据,可以采用下面的方法:

cout<
<ns1::rate<<endl
cout<
<ns1::pay<<endl
cout<
<ns1::tax()<<endl
cout<
<ns1::ns2::age<<endl
可以看到命名空间的声明方法和使用方法与类差不多。但是他们之间有一点差别:声明类时在右花括号的后面有一分号,而在定义命名空间时,花括号的后面没有分号。

使用std这个名字空间。标准库里面的东西都是处于std名字空间的。

如果不写这句,你写cin和cout时候就必须这样写,否则找不到cin或者cout。

std::cin>>a;

std::cout<
<a<<std::endl;
std是一个命名空间。C++中引入命名空间的主要是为了处理程序中常见的命名冲突,它是由ANSI C++引入的可以由用户命名的作用域。所谓命名空间,实际上就是一个由程序设计者命名的内存区域 ,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。

不同的命名空间可以有相同的类名被定义 。

using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就要用std:string(string是std空间中定义的,也可以在全局空间中定义,只要名字空间不一样即可)。否则可以默认名字空间中有std.便不用std:来修饰。

扩展资料:

VC++(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017。

参考资料:百度百科-Microsoft Visual C++
</a<<std::endl;
</ns1::ns2::age<<endl
</ns1::tax()<<endl
</ns1::pay<<endl
</ns1::rate<<endl

阅读更多 >>>  三星c7的手电筒在哪

c语言using namespace std什么意思

在标准C++以前,都是用#include

这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来C标准库的头文件也重新命名,如原来的string.h就改成cstring(就是把.h去掉,前面加上字母c),所以头文件包含的写法也就变成了#include



并不是写了#include

就必须用using namespace std;我们通常这样的写的原因是为了一下子把std名字空间的东东全部暴露到全局域中(就像是直接包含了iostream.h这种没有名字空间的头文件一样),使标准C++库用起来与传统的iostream.h一样方便。如果不用using namespace std;使用标准库时就得时时带上名字空间的全名,如std::cout << "hello" << std::endl;

#include "iostream"与#include

的区别:前者先在当前目录找iostream文件,找不到再去系统头文件路径找,后者反之。因此,做为一个良好的习惯,在包含系统头文件时尽量用<>,而在包含自己的工程中的头文件时用""。

不一样,前者没有后缀,实际上,在编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。

后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用

时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

#include

using namespace std; 则出错

所以 要么写成

#include

using namespace std;

要么写成

#include

当然最好是前种

namespace

在我看来,就是变量名/函数名的作用域的意思

最近研究JavaScript,才知道每个函数其实本质上都是对象的一个方法。比如像alert()这个函数,它的默认的作用域就是window这个对象,只是我们平时用它的时候都省去了,完整写出来应该是window.alert()。因此using namespace std里面,std也是作用域的意思,比如有俩对象,都有一个同名的函数,那么你如果不在最前面用using namespace表明作用域,那就要在后面每次用这个函数的时候都把作用域写出来

使用空间的时候需要,比如stl,string等,如果不写这句话,用容器的时候,就必须std::list<>。。。std::string

使用名词空间。。。是c++的命名空间。

using namespace std指调用命名空间std内定义的所有标识符。

使用“using namespace std”后,命名空间中的标识符就如同全局变量一样。

由于标准库非常大,程序员可能会选择类的名称或函数名称,就像它是标准库中的名称一样。因此,为了避免这种情况导致的名称冲突,标准库中的所有内容都放置在命名空间Std中。

但这将带来新的问题:无数的原始C语言代码依赖于伪标准库中的功能,这些功能已经使用多年,都在全局空间中。

所以就有了诸如

这样的head文件,一种是与以前的C语言代码兼容,另一种是支持新标准。

扩展资料:

C语言中调用using namespace std的意义:

1、在同一命名空间、相同作用域中,任何名字须具有唯一性。

2、每个结构和联合内部都有自己的命名空间(独立于其他空间)。

3、结构标签、联合标签、枚举标签共用一个命名空间(独立于其他空间)。

4、goto使用的标签名,只要在同一函数内部唯一(独立于其他空间)。

5、所有其他情况共用一个命名空间,如变量、所有枚举常量、typedef定义的别名等(独立于其他空间)。

参考资料来源:百度百科-namespace

什么用于打开命名空间std

程序语言c++,命名空间std是c++的命名空间。
用c++程序语言写代码,可以先添加一个 std.cpp 文件,再添加头文件(iostream),以及 main() 函数,输入代码: using namespace std; 作用为表示打开 std 命名空间,输入代码:cout << "Hello!!!" << endl;
具体编写可以根据自己的需要适当调整。

C++ 语言中 std:: 和 ::std:: 有什么区别?

假设你在某个命名空间foo中使用::std::,则结果还是::std::,这个路径是“绝对的",不会随当且命名空间变化而变化
而当你在最顶层代码中使用std::,它等价于::std::,当你在foo中使用std::,则等价于::foo::std::
如果你在foo::bar中,则变为::foo::bar::std::
也就是相对命名空间的完整路径和当前命名空间有关,不是固定的
在 C++ 语言中,std:: 和 ::std:: 都是名称空间的语法。它们的区别在于前者是相对的命名空间,后者是绝对的命名空间。
在 C++ 中,命名空间是一种将标识符分组的方法,避免标识符名称冲突。在标准库中,所有的标准库组件都被分组到 std 命名空间中。因此,如果你想使用标准库中的某个函数或类,你可以使用命名空间语法来访问它,如:std::cout 或 std::string。
如果你在当前命名空间中,使用 std:: 可以相对于当前命名空间访问 std 命名空间,而如果你在外部命名空间中,则必须使用绝对命名空间语法 ::std:: 来访问 std 命名空间。
举个例子
namespace my_namespace {
// code here
void my_function() {
std::cout << "Hello, world!" << std::endl; // 访问相对的 std 命名空间
}
}
int main() {
::std::cout << "Hello, world!" << ::std::endl; // 访问绝对的 std 命名空间
return 0;
}
望采纳

C++的using namespace std表示什么意思?为什么C语言没有这句话

h这种没有名字空间的头文件一样),打开文件就会发现,做为一个良好的习惯。标准c++引入了名字空间的概念,也就是早期的c++实现;iostream".h的头文件c++标准已经明确提出不支持了,实际上;,使用的是全局命名空间,所以头文件包含的写法也就变成了#include
<.h>就必须用using
namespace
std;iostream>hello"。
后缀为,该头文件没有定义全局命名空间,二者是两个文件、string等等;时;iostream>:endl;与#include<.h.h>不一样:.h后缀的头文件里.h>:。
并不是写了#include
<和&lt,也为了正确使用命名空间,规定头文件不使用后缀;iostream在标准c++以前.h就改成cstring(就是把;
<,在包含系统头文件时尽量用<,找不到再去系统头文件路径找;iostream,c++标准为了和c区别开,同时为了不与原来的头文件混淆,当使用<,使标准c++库用起来与传统的iostream,前者没有后缀;iostream

>。

因此,并且把原来c标准库的头文件也重新命名,因为要包含进来的头文件名就是iostream.h>iostream;iostream;

则出错

所以

要么写成

#include

<,声明在带.h去掉,如std;

using

namespace

std;>:cout

的区别.h;

using

namespace

std;;<,如原来的string;

"iostream>,相当于在c中调用库函数,早些的实现将标准库功能定义在全局空间里;

iostream>,而在包含自己的工程中的头文件时用"。如果不用using

namespace

std,前面加上字母c).h>.h一样方便,必须使用namespace

std;这样的写法的,这套头文件的文件名后不加。因此.h扩展名;这样才能正确使用cout;

要么写成

#include

<,如iostream。

<

std;;当使用
<使用标准库时就得时时带上名字空间的全名;&lt。
#include

<,规定标准c++使用一套新的头文件;",在编译器include文件夹里面可以看到,里面的代码是不一样的;iostream,并把iostream等标准库中的东东封装到了std名字空间中;

#include

"

是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。

后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用

时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用

的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout

使用std命名空间

98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。举一个实例,请注意以下两个头文件:

// one.h

char func(char);

class String { ... };

// somelib.h

class String { ... };

如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。

所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。比如:

// one.h

namespace one

{

char func(char);

class String { ... };

}

// somelib.h

namespace SomeLib

{

class String { ... };

}

现在就算在同一个程序中使用String类也不会发生冲突了,因为他们分别变成了:one::String()以及Somelib::String()

这样,就可以通过声明命名空间来区分不同的类或函数等了。

比如C++标准库定义了命名空间:std,其中包含容器vector,示例如下:

#include "stdafx.h"

#include

#include

#include

using namespace std;

int main(int argc, char* argv[])

{

const int arraysize = 7;

int ia[arraysize] = {0,1,2,3,4,5};

file://定义容器vector

vector

阅读更多 >>>  小米5c的防伪码在哪里

ivect(ia,ia+arraysize);

vector

::iterator it1 = find(ivect.begin (),ivect.end (),4);

if(it1 == ivect.end ())

cout<<"4 not found "<
<endl;
else

cout<<"4 found "<<*it1<
<endl;
return 0;

}

输出结果为:4 found 4.

龙行虎步的伟岸英姿;

命名空间而已,标准输入输出格式,没这个就不能用C++特有的重载cout<

>了

这些标准格式,不要拘泥于这些小节了,不然你会发现后面没法学了。。。各种小的格式问题。。。

命名空间,C++标准程序库中的所有标识符都被定义于一个名为std的namespace中,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h

是命名空间的意思,这样编译器在编译的时候相当于每个变量都是 命名空间+变量名,这样就可以在不同命名空间里,起同样的变量名,防止变量名用尽或者冲突。C语言没有命名空间,C和C++其实是两门语言,尽量按照他们是两门不同语言的思路来学习比较好。

</endl;
</endl;

</使用标准库时就得时时带上名字空间的全名;&lt。

</和&lt,也为了正确使用命名空间,规定头文件不使用后缀;iostream在标准c++以前.h就改成cstring(就是把;

请问:在C++程序中命名空间std是一定要写的吗?

using namespace std:这行代码指出iostream中定义的名称要以"标准方式"来解释.
std是标准的意思.命名空间有很多.如
using std::cout;
using std::endl;
using std::cin;
....
这些都是用到的时候再写.但是using namespace std是要调用输入输出流程序都要用到.
在标准C++编程里是一定要写的,这是类作用域命名空间,详细的讲解可以参考《C++面向对象程序设计》清华大学谭浩强著的
作为好习惯要写。
不写的话,编译器自动默认加上std这个空间,如果在整个程序中只是用了std这一个名字空间,就不会出现问题。
有时候是不用写的,因为编译器为为你默认加上,但是标准C++里面要求一定要写上,就像在VC6.0下不用下,到2005就必须写了。。
std是标准命名空间,cin和cout就是这个命名空间下定义的,所以为了遵循标准,要用cin等的话,还是写上的好。不然主应该这样用,std::cin>>,std::cout<<,否则严格的编译器会报错

C++的std是类吗?

不是,这是一个命名空间或类库
不是,这是命名空间。
这是命名空间
不是,是一个namespace
C++ 引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是std。std 是 standard 的缩写,意思是“标准命名空间”。

namespace std命名空间是std是个类,还是相当于一个类的空间?

std是c++标准命名空间,c++标准程序库中的所有标识符都被定义在std中,比如标准库中的类iostream、vector等都定义在该命名空间中,使用时要加上using声明(using namespace std) 或using指示(如std::string、std::vector

).

仅仅是个命名空间,为了防止变量名冲突。不是类。

举个例子,有十个叫李刚的人,都是李刚,冲突了,怎么区分他们。给他们加上命名空间

长沙::李刚

成都::李刚

.............

在c++里,可以这样

namespace std

{

int a;

}

声明在括号里的变量,你要引用时都要加std::a

在c++中‘命名空间’是什么意思?‘std::’是什么意思?谢

std 就是 standard标准
std::cin
表示的就是标准输入
::是域操作符
standard标准
举个例子吧,我们的名字,有很多时候会重名,比如张三.
世界上可能有几十几百个张三.
我们的世界里当然可以用身份证号码来分啦,但在没有身份证的时代怎么分呢?
有办法的,比如,可以在名字前面加上地方名,如
广东的张三
上海的张三
同样的道理,我们在编程时,不同的程序员可能都会喜欢用同样的名字来表示相同的东西,如,大家可能都会用dog来表示狗类.好了,现在有好几位程序员都写了dog类,可能各自的功能不同或相同.就好比好几家人都养了条狗一样.好了,在程序调用时,编译器傻了,它不知道该拉哪家的狗出来响应呀!
怎么办?哦,让我们在狗前面加上namespace(名字空间)以示区分,好了,于是程序中就有了
张三 的 狗
李四 的 狗
啰嗦了一大堆,该说回来了
std::
std表示是C++的标准命名空间,就是编译系统自带有的,按C++标准定义好了的。
:: 书写格式
比如,在使用输出std::cout时,如果它达不到我们想要的效果,我们也可以自己定义一个名字空间,
取名myspace,再在这个空间里写一个cout函数来实现.调用时,就成了myspace::cout.

网站数据信息

"命名空间std,C++的std是类吗?"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:命名空间std,C++的std是类吗?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!