16.C++-初探标准库
在别人代码里,经常看到std命名空间,比如使用std命名空间里的标准输入输出流对象cout:
#include<iostream> using namespace std; int main()
{
cout << "Hello world" << endl;
return 0;
}
其中cout相当于控制台输出(console out),然后通过<<左移操作符,将每个字符打印出来.
endl相当于就是'\n'换行.
接下来我们便通过上章学习的操作符重载,来实现上面功能
#include "stdio.h"
const char endl='\n'; class Console{
public:
Console& operator <<(const char* str)
{
printf("%s",str);
return *this;
} Console& operator <<(char c)
{
printf("%c",c);
return *this;
}
}; Console cout; int main()
{
cout<<"Hello world"<<endl;
return 0;
}
上面的操作符重载(<<),为什么返回值是return *this?
因为,我们需要连续使用<<,比如:
cout<<"Hello word"<<endl; //等价于: (cout<<"Hello word")<<endl;
运行(cout<<"Hello word")后,便会将cout对象return出来,然后继续调用cout<<endl.
通过cout后,便无需再写输出格式了,不会像printf()那么麻烦了.
而前辈们已经将cout,cin这些开发成C++标准库了,我们直接调用就好了.
C++标准库描述
- C++标准库是由类库 和函数库 组成的集合, 不是C++语言的一部分
- C++标准库中定义的类和对象,都位于std命名空间中
- C++标准库的头文件都不带.h后缀,比如: #include<iostream>
- C++标准库涵盖了C库的功能
C++标准库里还实现了多数常用的数据结构以及类似C语言的库,比如:

上面的<cstdio>,是将以前C语言的stdio.h包含的内容都被定义在命名空间std中.
而以前的stdio.h的内容是被定义在全局命名空间中的.
所以使用C++标准库时,需要使用using namespace std; 来声明使用std命令空间.
接下来下章,来学习C++标准库-string类
16.C++-初探标准库的更多相关文章
- 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...
- 把《c++ primer》读薄(3-1 标准库string类型初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...
- 简明Python3教程 16.标准库
简介 python标准库作为python标准安装的一部分,其自身包含数量庞大的实用模块, 因此熟悉python标准库非常重要,因为很多问题都能利用python标准库快速解决. 下面我们将研究标准库中的 ...
- Python学习笔记16:标准库多线程(threading包裹)
Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率 ...
- 第32课 初探C++标准库
有趣的重载: 实验: 将1左移到cout对象中. 将Test改名为Console,此时我们的本意是想让这个cout代表当前的命令行: cout代表命令行的一个实例,本意是想将1打印到命令行上. 我们在 ...
- C++标准库的初探
1,操作符 << 的原生意义是按位左移,例: 1 << 2; 其底层的意义是将整数 1 按位左移 2 位,即: 0000 0001 ==> 0000 0100: 2,重 ...
- 32,初探c++标准库
1. 有趣的重载 (1)操作符<<:原义是按位左移,重载“<<”可将变量或常量左移到对象中 重载左移操作符(仿cout类) #include<stdio.h> co ...
- C标准库-数值字符串转换与内存分配函数
原文链接:http://www.orlion.ga/977/ 一.数值字符串转换函数 #include <stdlib.h> int atoi(const char *nptr); dou ...
- 【夯实PHP基础】PHP标准库 SPL
PHP SPL笔记 这几天,我在学习PHP语言中的SPL. 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记.不然记不住,以后要用的时候,还是要从头学起. 由于这是供 ...
随机推荐
- String不可变StringBuffer可变
String是一个类,也可以表示字符串数据类型 String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值 ...
- 深度学习篇——Tensorflow-GPU配置
tensoflow-gpu安装 对于python 3.5和3.6的童鞋们而言,安装tensorflow其实并不难,因为我们可以通过pip直接安装. 不过,第一要求你安装的python是64位的,如下图 ...
- 【linux之挂载,Raid,LVM】
一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客 ...
- Hidden Markov Models(HMM) 初理解
1. 一个简单例子
- servlet上传文件报错(二)
1.具体报错如下: java.io.FileNotFoundException: D:\MyEclipse\workspace\FileUpload\WebRoot\upload (拒绝访问.) at ...
- Java考查“==”和equals
/** * */ package com.you.demo; /** * @author YouHaiDong * @date 2015-04-02 */ public class Welcome { ...
- Java Breakpoint
1.错误描述 Java Breakpoint Unable to install breakpoint in com.you.humb.web.commom.dao.impl.ExportDaoImp ...
- class-感知机Perception
1 感知机模型1.1 模型定义2 感知机学习策略2.1 数据的线性可分性2.2 学习策略3 学习算法3.1 算法原始形式3.2 收敛性3 学习算法的对偶形式 1 感知机模型 感知机perceptron ...
- ORA-01940: cannot drop a user that is currently connected解决方法
我们在删除数据库用户时候会碰到如下错误 SQL> DROP USER sys_xj cascade; DROP USER sys_xj cascade*ERROR at line 1:ORA-0 ...