引例:

#include<iostream>
int main()
{std::cout<<"我喜欢C++";//输出一句话std::cout<<std::endl;//换行return 0;
}

1.std是什么?

std::    是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。

对象count是标准函数库所提供的对象,而标准库在名字空间中被指定为std,所以在使用cout的时候要加上std::。这样编译器就会明白我们调用的cout是名字空间std中的cout。             

2.为什么将cout放到名字空间std中?

是因为像cout这样的对象在实际操作中或许会有好几个,比如说你自己也可能会不小心定义了一个对象叫cout,那么这两个cout对象就会产生冲突。

3.std都是什么时候使用?

一般来说,std都是要调用C++标准库时,要写上std;

使用非标准库文件iostream.h,不用写。

比如上面引例这样改写就不需要std:

#include<iostream.h>
int main()
{cout<<"我喜欢C++";//输出一句话cout<<endl;//换行return 0;
}

当然还有一种方法:

在main函数的上面使用了两行语句:

using std::cout;
using std::endl;

那么cout和endl前面就不需要std::

比如这样改写引例:

#include<iostream>
using std::cout;
using std::endl;
int main()
{cout<<"我喜欢C++";//输出一句话cout<<endl;//换行return 0;
}

其实还有种更简便的方法,就是直接使用using namespace std来代替using std::cout和using std::endl。

using namespace std 告诉编辑器我们将要使用空间std中的函数或者对象。

所以cout和endl前面不用注明它们是std这个名字空间中的cout和endl。

#include<iostream>
using namespace std;
int main()
{cout<<"我喜欢C++";//输出一句话cout<<endl;//换行return 0;
}

参考资料:星云博客园

转载于:https://www.cnblogs.com/mhq-martin/p/8604842.html

【C++】std::是什么?相关推荐

  1. C++ 笔记(36)—— std::cout 输出保留小数位数

    需要头文件 #include <iomanip> setprecision() 来用来保存有效数字,fixed 和 setprecision() 一起用就变成保存小数点后有效数字. fix ...

  2. C++ 笔记(35)— std::to_string 转换整形数字为字符串

    1. 函数原型 string to_string (int val); string to_string (long val); string to_string (long long val); s ...

  3. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

  4. OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出

    1. 定义和输出二维点 Point2f p2(3, 4);cout << "[二维点] is "<< endl << p2 << e ...

  5. PyTorch 笔记(07)— Tensor 的归并运算(torch.mean、sum、median、mode、norm、dist、std、var、cumsum、cumprod)

    1. Tensor 归并运算函数 此类操作会使输出形状小于输入形状,并可以沿着某一维度进行指定操作,如加法, 既可以计算整个 tensor 的和,也可以计算 tensor 每一行或者 每一列的和, 常 ...

  6. 函数指针amp;绑定: boost::functoin/std::function/bind

    see link: https://isocpp.org/wiki/faq/pointers-to-members function vs template: http://stackoverflow ...

  7. c++标准库 及 命名空间std

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

  8. std::max,std::min错误:应输入标识符的解决方法

    使用VS2010编写的C++程序 std:min 转换到 VS2013无法识别,显示"错误:应输入标识符".     标准库在头中定义了两个模板函数std::min() 和 std ...

  9. c++ std::priority_queue优先队列

    template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...

  10. 关于std::string 在 并发场景下 __grow_by_and_replace free was not allocated 的异常问题

    使用string时发现了一些坑. 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新. 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧. ...

最新文章

  1. IntelliJ IDEA 2020.2 发布:支持Java 15、GitHub审查、运行时异常的排查辅助...
  2. python相机拍照显示时间_python让图片按照exif信息里的创建时间进行排序的方法...
  3. 【知识图谱】知识抽取与挖掘(I)
  4. 央行无意放宽松,7月贷款仍有可能吃紧
  5. 活动事务日志以及事务的类型
  6. java concurrent int_Java高级特性系列--Concurrent
  7. 【幽默】工作搞不好的原因
  8. Python获取日期列表中每一天中最大的时刻对应的日期时间戳
  9. DevExpress学习之Gridcontrol
  10. 产品经理之需求管理(非原创)
  11. Android 炫酷自定义 View - 剑气加载
  12. ToDoListEditor 任务清单工具
  13. 暑假来了,画一个日月地球的轨道模型给孩子们,秒懂四季更迭、日蚀月蚀
  14. 奥西tds300服务器维修,奥西Océ TDS300 驱动
  15. matlab绘制累计频率曲线图,累积频率曲线怎么画,怎么画累计曲线图
  16. TI杯 LaunchPad MSP430开发环境搭建
  17. 如何通过ADB命令的方式关闭华为系手机的emui系统更新升级?解决:error: no devices/emulators found
  18. 人工智能学习Part,II
  19. ClickHouse过年彩蛋
  20. Zigbee Direct

热门文章

  1. 软件测试中不需要测试的八件事
  2. springcloud 分布式配置中心 config server config client
  3. shell脚本获取mysql插入数据自增长id的值
  4. linux rootfs制作
  5. HTTP协议请求类型响应简介
  6. s10_part3_django_ORM_查询相关_非常重要
  7. Java面试题-多线程
  8. http1.0 与 http1.1
  9. 初步解决leiningen配置到Eclipse中出错的问题
  10. new 动态分配数组空间 .xml