这个命名空间std都有什么内容啊?用string也要加上这个using namesapce std;

紫色动力 2009-10-16 02:46:42
如题,谢谢啦,各位!
...全文
827 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlm_ok 2010-02-18
  • 打赏
  • 举报
回复
引用 18 楼 schoolers 的回复:
引用 5 楼 yangyunzhao 的回复:
建议不要使用using namespace std;
而是
using std::string;
using std::cout;
using std::endl
等等

为什么?我认为还是using namespace std;方便,不用每次都写

如果你用using std::string;的话
你int vector;就是合法的。而using namespace std;就不行
std里很多东西
BillLeecn 2010-02-09
  • 打赏
  • 举报
回复
using namespace std;
最好都加上,标准C++的东西都在这个namespace,基本上都要用。
jvs 2010-02-05
  • 打赏
  • 举报
回复

[Quote=引用 1 楼 lihan6415151528 的回复:]
iostream里面提供了一些在std命名空间里面有关输入输出流的东西

如果你用
#include <iostream.h>
就可以不用 using namespace std;

[/Quote]
恩就是这样,这只是个标准
游钓侠 2010-02-05
  • 打赏
  • 举报
回复
学习了!
hztlfwd 2010-02-05
  • 打赏
  • 举报
回复
摘至C++ primer plus的话:
由于C使用不同的文件扩展名来表示不同文件类型,因此用一些特殊的扩展名(如hx或hxx)表示C++头文件是有道理的,ANSI/ISO委员会也这样认为。问题在于究竟使用哪种扩展名,因此最终他们一致同意不使用任何扩展名。
我是这样认为的:ANSI/ISO委员会无法确定用哪个扩展名,大家争吵的结果是不用你的扩展名,也不用他的扩展名,最终结果是不用扩展名。
febbird1984 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 purplepower 的回复:]
引用 2 楼 steedhorse 的回复:
C++标准库中的东西都定义在std命名空间中。

C++标准库是STL吗?
[/Quote]
STL是C++标准库中的一部分
还有IO库,就是包含了cout,cin那些东西的库
还有就是C++版的C标准库,比如strcpy这些
紫色动力 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 linuxprog 的回复:]
学习了。标准C++的新式头文件没有扩展名,那自己写的c++类,包含头文件时,要不要加.h呢?
[/Quote]
自己的要加的,标准库是不用加的,呵呵!
终于有一个问题我能回答了。
huazai0405 2010-02-03
  • 打赏
  • 举报
回复
学习了。标准C++的新式头文件没有扩展名,那自己写的c++类,包含头文件时,要不要加.h呢?
Eveilei 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yangyunzhao 的回复:]
建议不要使用using namespace std;
而是
using std::string;
using std::cout;
using std::endl
等等
[/Quote]

正解
紫色动力 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 steedhorse 的回复:]
C++标准库中的东西都定义在std命名空间中。
[/Quote]
C++标准库是STL吗?
紫色动力 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 toroid 的回复:]
命名空间的作用是名称认定和作用域规则,为了支持大规模程序的逻辑设计、排解名字冲突的
[/Quote]
所以才需要知道里面都有什么啊,要不你怎么用呢?
CCCCCCCCCCCCCCC 2009-10-29
  • 打赏
  • 举报
回复
命名空间的作用是名称认定和作用域规则,为了支持大规模程序的逻辑设计、排解名字冲突的
gton08 2009-10-27
  • 打赏
  • 举报
回复

谢谢了
原来是这个原因啊
2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 gton08 的回复:]
引用 29 楼 hpsmouse 的回复:
引用 28 楼 cir2633 的回复:
引用 5 楼 yangyunzhao 的回复:
建议不要使用using namespace std;
  而是
  using std::string;
  using std::cout;
  using std::endl
  等等

using ***和using namespace ***在语法上有什么区别呢 ? 对于编译器, 这两种写法又有和区别 ?

using namespace xxx 会引入 xxx 名空间内的所有标识符,而 using xxx::yyy 只引入相应标识符。
相比之下明确指定引入的标识符更加安全,不会产生意想不到的冲突。


感觉直接引入命名空间挺好的啊
怎么会有冲突
是为了区分万一我们自己写的函数和STD里面的函数一个名字的这种可能?
[/Quote]
正是,使用 using xxx::yyy 形式可以明确知道自己引入了哪些标识符,避免名字冲突。
wuquanzhanjiang 2009-10-27
  • 打赏
  • 举报
回复
string iostream都是标准库的,定义的对象都放在命名空间std里面 ,using namespace std;语句表明命名空间std里所有对象名皆可用,所以编码的时候可以直接用string cout之类的对象名
另外 也可以用 using std::cout
using std::cin等
用using namespace std虽然方便,但是要求是在程序只用标准库而不用其他库,不然可能会有命名冲突问题
命名空间机制就是用来避免命名冲突
wxdcxp 2009-10-26
  • 打赏
  • 举报
回复
cin>>
cout<<
Julykey 2009-10-26
  • 打赏
  • 举报
回复
学习了
gton08 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 hpsmouse 的回复:]
引用 28 楼 cir2633 的回复:
引用 5 楼 yangyunzhao 的回复:
建议不要使用using namespace std;
  而是
  using std::string;
  using std::cout;
  using std::endl
  等等

using ***和using namespace ***在语法上有什么区别呢 ? 对于编译器, 这两种写法又有和区别 ?

using namespace xxx 会引入 xxx 名空间内的所有标识符,而 using xxx::yyy 只引入相应标识符。
相比之下明确指定引入的标识符更加安全,不会产生意想不到的冲突。
[/Quote]

感觉直接引入命名空间挺好的啊
怎么会有冲突
是为了区分万一我们自己写的函数和STD里面的函数一个名字的这种可能?
hyccai 2009-10-26
  • 打赏
  • 举报
回复
学习中
2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 cir2633 的回复:]
引用 5 楼 yangyunzhao 的回复:
建议不要使用using namespace std;
而是
using std::string;
using std::cout;
using std::endl
等等

using ***和using namespace ***在语法上有什么区别呢 ? 对于编译器, 这两种写法又有和区别 ?
[/Quote]
using namespace xxx 会引入 xxx 名空间内的所有标识符,而 using xxx::yyy 只引入相应标识符。
相比之下明确指定引入的标识符更加安全,不会产生意想不到的冲突。
加载更多回复(30)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧