using namespace std;

int main()

{

 std::string dd = "ddd";//会报错namespace "std" has no member "string",因为没有引入string库

}

#include<string>

int main()

{

    string  dd = "ddd"; //虽然编译单元包含了string,但是这个string还是找不到,因为string在std中,必须加std::才能找到string

    std::string dd = "ddd";//这样就不会报错了

}

#include<string>

using namespace std;//在这个域中用using声明了std::string

int main()

{

    string  dd = "ddd"; //string能找到了,这个string就是std::string

}

#include<iostream>

int main()

{

    std::string  dd = "ddd"; //不会报错,因为iostream里面include了string

}

总结:
#include <string>

就是将string库包含到当前编译单元中.

using namespace std;

1.尽量不要写using namespace std;因为随着项目的增大,会污染其他的文件,很难查出问题

因为使用using namespace std;的话就没有起到命名空间的作用。再次回到了如同没有涉及命名空间时,所有标示符都定义在全局作用于中的混乱情况,不利于程序员创建新对象。

2.如果,把using namespace std; 写在全局中.

就是将std里的所有名字暴露在当前编译单元的各个域中,

3.如果using std::string在单独的域中,就可以在该域中直接使用string, 少打std::了,比较方便

一个编译单元会有很多域...一般,这个只会出现在单独的域中

using namespace std 和 include 的区别的更多相关文章

  1. #include<iostream.h>与#include<iostream> using namespace std的区别

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

  2. 关于C++中using namespace std

    原文链接:http://www.kuqin.com/language/20080107/3532.html <iostream>和<iostream.h>是不一样,前者没有后缀 ...

  3. (C++)浅谈using namespace std

    1.<iostream>和<iostream.h> 在你的编译器include文件夹里面可以看到,二者是两个文件,里面的代码是不一样的. 后缀为.h的头文件c++标准已经明确提 ...

  4. using namespace std 是什么意思?

    摘录CSDN上面大牛的回答简要意思就是使用标准库,想知道更清楚的继续读下面的. using   namespace   std   意思:   using   和namespace都是C++的关键词. ...

  5. 【学习笔记】using namespace std 的作用

    C++编程时几乎每次都敲上using namespace std;但这行代码究竟有什么作用呢? C++标准程序库中的所有标识符都被定义于一个名为std的namespace中. 早些的编码将标准库功能定 ...

  6. 经实验验证,修正对using namespace std的认识

    备注①:name:符号.指的实体包括:变量.函数.类 备注②:认为全局命名空间也是一个包,在此称作 ROOT:: 或 global:: (这样就有了两个特别的包:一个是全局包,一个是std包.但对于编 ...

  7. [转载]C++之using namespace std 详解与命名空间的使用

    来源:https://blog.csdn.net/Bruce_0712/article/details/72824668 所谓namespace,是指标识符的各种可见范围.C++标准程序库中的所有标识 ...

  8. C++ using namespace std(转载)

    转载自http://www.kuqin.com/language/20080107/3532.html 感谢这位大神的解答! 以下的内容摘抄自转载的文章里面的部分内容. 早些的实现将标准库功能定义在全 ...

  9. using namespace std

    using namespace std std 是一个命名空间..不同的命名空间可以有相同的类名被定义 ..using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就 ...

随机推荐

  1. Django之模板语言(一)

    1.Django的模板语言(简而言之,字符串替换) 1.目前为止已经学过的模板语言: 1.{{ name }}  ------>变量 2. for 循环: {% for i in book_li ...

  2. python学习笔记4.1_检测和过滤异常值

    1.查看数据分布data.describe() 2.找出某列中符合筛选条件的值 3.找出符合筛选条件的行 4.用np.sign(data)*3设置绝对值的标准 data[np.abs(data)> ...

  3. springboot整合rabbitMQ时遇到的消息无法入列问题

    问题描述: 对列和交换器配置如下(绑定的正常交换器的key是“convert”): 管理平台上手动发是可以的: 而通过程序发消息不行,根本没有进入队列: 解决:显式指定交换器(备选交换器和死信交换器都 ...

  4. 2018-10-31-win10-uwp-使用-asp-dotnet-core-做图床服务器客户端

    title author date CreateTime categories win10 uwp 使用 asp dotnet core 做图床服务器客户端 lindexi 2018-10-31 14 ...

  5. 主从复制系列B

    从服务器靠中继日志来接收从主服务器上传回来的日志.并依靠状态文件来记录已经从主服务器接收了哪些日志,已经恢复了哪些日志. 中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取.SQL线 ...

  6. Ubuntn16.04+OpenCV3.1+CUDA8.0+cudnn5.1+caffe配置及问题集锦

    ubuntn16.04 Caffe安装步骤记录(超详尽) 一开始安装好ubuntn16.04后,先安装的opencv3.1,再自己安装的390驱动,cuda8.0和cudnn,之后配置caffe一直不 ...

  7. TZ_03_mybatis的xml开发

    1.通过Student.xml编写sql来操作数据库 1>insert语句插入后返回主键 加入标签useGeneratedKeys=“true” keyProperty=“oid” 中 keyP ...

  8. __autoreleasing 修饰符

    将对象赋值给附有__autoreleasing 修饰符的变量等同于ARC 无效时调用对象的autorelease方法.我们通过以下源代码来看一下. @autoreleasepool { id __au ...

  9. C++和G++手工开栈的=_=

    微软的编译器(C++) #pragma comment(linker, "/STACK:102400000,102400000") G++ << ; // 256MB ...

  10. 打包成exe可执行文件的方法

    Python安装扩展库与打包成exe可执行文件的方法 1.安装扩展库的几种方法. 首先可能需要使用 pip install --upgrade pip 来升级本机的pip程序.然后在命令提示符环境(即 ...