当前位置: 首页 > article >正文

一文说清:c++标准库

一 关于C++标准库

C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。<cname>形式的标准头文件(<complex>例外)。

其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在<cname>形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用name.h形式的标准C库头文件名。

C++标准库的内容分为10类:

  1. 语言支持
  2. 输入/输出
  3. 诊断
  4. 一般工具
  5. 字符串
  6. 容器
  7. 迭代器支持
  8. 算法
  9. 数值操作
  10. 本地化

二 示例代码

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

其中,<iostream>就是c++标准库。

三 std是什么?

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

对象count是标准函数库所提供的对象,而标准库在名字空间中被指定为std,所以在使用cout的时候要加上std::。

这样编译器就会明白我们调用的cout是名字空间std中的cout。

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

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

五 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;
}

六 小结

以上简单介绍了c++标准库,并以示例代码的方式作了相关说明。


http://www.kler.cn/a/399878.html

相关文章:

  • 数据科学与SQL:如何计算排列熵?| 基于SQL实现
  • 基于YOLOv8深度学习的公共卫生防护口罩佩戴检测系统(PyQt5界面+数据集+训练代码)
  • 使用Python和BeautifulSoup进行网页抓取:通过Python编程语言,结合BeautifulSoup库,可以轻松地从网站上抓取所需的信息。
  • C++ 内联函数
  • 【AtCoder】Beginner Contest 380-C.Move Segment
  • 琐碎笔记——pytest实现前置、后置、参数化、跳过用例执行以及重试
  • 电脑msvcr100.dll丢失的解决方法,详细介绍多个解决方法
  • 上市公司企业研发操纵数据集(2008-2023年)
  • 【鸿蒙开发】第十五章 H5与端侧交互、Cookies以及Web调试
  • Video Duplicate Finder 快速识别并去除重复的视频和图像!
  • 大数据算法:三、梯度下降
  • Linux 中怎样把正在执行的任务放到后台执行
  • vue3 路由写法及传参方式 !超详细
  • 开源物业管理系统助力智能社区提升服务效率与用户体验
  • 基于Java Springboot北工国际健身俱乐部系统
  • 数据结构哈希表-(开放地址法+二次探测法解决哈希冲突)(创建+删除+插入)+(C语言代码)
  • 用Rust TypeMap安全存储多种类型数据
  • 【知识科普】统一身份认证CAS
  • PGMP-练DAY26
  • django的model时间怎么转时间戳
  • SWPUCTF 2024 奇迹新生塞 签到?
  • 【微信小程序】访客管理
  • 基于扩散模型的无载体图像隐写术
  • Java-异常处理机制
  • 近几年新笔记本重装系统方法及一些注意事项
  • 【论文阅读】Prompt-to-Prompt Image Editing with Cross Attention Control