C++Primer学习笔记:第1章 开始
本博客为阅读《C++ Primer》(第5版)的读书笔记
ps:刚开始的时候我将所有的笔记都放在一篇博客中,等看到第六章的时候发现实在是太多了,导致我自己都不想看,为了日后回顾(不那么有心理压力),我将笔记拆分为一章一章的。
- 在大多数系统中,
main
的返回值被用来指示状态。返回值0表示成功,非0的返回值的含义由系统定义,通常用来指出错误类型。在Unix
中程序运行以后返回值保存在$?
中(必须在刚运行后打印输出) - 编译时可能需要加上
-std=c++11
打开对C++11标准的支持,一般会加上-Wall
参数,可以对有问题的程序结构发出警告 - 如果想要通过打印语句进行调试,一定要及时使用
endl
操纵符刷新流,否则如果程序崩溃,可能无法得到输出信息,从而导致关于程序崩溃位置的错误推断 - 标准库定义的所有名字都在命名空间std中
/*
和*/
之间不能包含*/
,可以包含/*
和//
- 当我们使用一个
istream
对象作为条件时,其效果是检测流的状态。如果流是有效的(未遇到错误)检测成功,当遇到文件结束符(end-of-file
),或遇到一个无效输入时,istream
对象的状态会变为无效,返回假 - 在
Unix
系统中,文件结束符为Ctrl+D
- 按照编译错误报告的顺序来逐个修正错误,因为错误经常有传递效应,后面的错误经常是由前面的错误引起的。在每修改一个(或一小部分)明显的错误后就重新编译
- 用
cin
进行循环读入的格式为while(cin>>x)
。但是如果用Ctrl+C
中断读入会导致cin
失效 - 对
cin
和scanf
的输入速率进行了测试,一般情况下cin
比scanf
慢许多,在读入规模在1e6
规模就会有明显的差距。但是可以用ios::sync_with_stdio(false);
加速流,这样会关闭和stdio
的同步,在网上查了一下,这就要求我们在混用cout
和printf
的时候都要及时清空缓冲区(输出endl
或者\n
),问题不大。在加速流以后,cin
和scanf
的效率差不多,在1e8
数量级的时候cin
的效率超过了printf
(实测) - 注意判等运算符为
==
,为了避免写成=
出错,一个良好的编程习惯是常量 == 变量
,这样如果我们写错了就会报错 - 标准头文件一般不加后缀,包含来自标准库的头文件时,应该使用
<>
包围头文件,对于不属于标准库的头文件,则用""
包围 - 为了使用一个类,我们不必关心它是如何实现的,只需要知道类对象可以执行什么操作
- 点运算符
.
的运算结果是右侧运算对象指定的成员,调用运算符()
里面放置参数列表。 - 缓冲区是一个存储区域,用于保存数据。IO设施通常将输入(输出)数据保存在一个缓冲区中,读写缓冲区的动作与程序中的动作是无关的。我们可以显式地刷新缓冲区,以便强制将缓冲区中的数据写入输出设备。默认情况下,读
cin
会刷新cout
,程序非正常终止也会刷新cout
- 类类型的变量如果未指定初值,则按类定义指定的方式进行初始化。定义在函数内部的内置类型变量默认是不初始化的,除非有显式的初始化语句
C++Primer学习笔记:第1章 开始相关推荐
- C++ Primer 学习笔记 第一,二章
2021年4月4日,我终于开始学习C++啦,下面的笔记会记录着我的心酸的学习历程,每个标题会记录着下面代码在<C++中文版 Primer>中的页码 P6 实现两数之和 # include ...
- C++ Primer 学习笔记 第十七章 标准库特殊设施
标准库特殊设施 637 初始化tuple #include <iostream> #include <vector> #include <string> #incl ...
- C++ Primer 学习笔记(第四章:表达式)
2019独角兽企业重金招聘Python工程师标准>>> ##C++ Primer 学习笔记(第四章:表达式) [TOC] ###4.1 基础 左值和右值: 当一个对象被用作右值的时候 ...
- 《C Primer Plus》学习笔记—第9章
目录 <C Primer Plus>学习笔记 第9章 函数 1.复习函数 1.引入 2.创建并使用简单的函数:程序lethead1.c 3.分析程序 4.函数参数 1.程序lethead2 ...
- 《C Primer Plus》学习笔记—第12章
目录 <C Primer Plus>学习笔记 第12章 存储类别.链接和内存管理 1.存储类别 1.作用域 2.链接 3.存储期 4.自动变量 1.程序hiding.c 2.没有花括号的块 ...
- 《C Primer Plus》学习笔记—第14章
目录 <C Primer Plus>学习笔记 第14章 结构和其他数据形式 1.示例问题:创建图书目录 1.程序book.c 2.建立结构声明 3.定义结构变量 1.初始化结构 2.访问结 ...
- c++primer学习笔记
c++ primer 5e学习笔记 第1章 1.标准库 类型和函数的集合,每个c++编译器都必须支持. 2.()运算符:调用运算符.跟随在函数名后,起调用函数的作用 第2章 1.p32:char在一些 ...
- CCSP-防火墙学习笔记第6章
CCSP-防火墙学习笔记第6章-Netemu首发 第6章刚刚完成,排版上更具层次化,等第7章完结后,将会重新把1-7章的内容编好目录.作为Cisco防火墙学习笔记的初级篇发布 高级特性将会在第8章讨论 ...
- Programming Entity Framework-dbContext 学习笔记第五章
### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...
- 机器学习理论《统计学习方法》学习笔记:第二章 感知机
<统计学习方法>学习笔记:第二章 感知机 2 感知机 2.1 感知机模型 2.2 感知机学习策略 2.2.1 数据的线性可分性 2.2.2 感知机学习策略 2.3 感知机学习算法 2.3. ...
最新文章
- Discuz NT 架构剖析之Config机制
- 编程之美-构造数独方法整理
- 清理buffer/cache/swap的方法梳理
- centos5.5中安装mysql5.5.3
- 浅析 record 使用场景
- OpenCV如何修改Mat中某像素(某通道的数值)
- java中decrement,Java Math decrementExact()用法及代码示例
- Python3 ORM hacking
- [LeetCode] Permutations II
- 07- HTTP协议详解及Fiddler抓包
- 使用RDP报表工具实现多级表头动态列
- php一句话跨域,php跨域怎么解决
- AutoRunner 功能自动化测试项目实训之常见问题(十)
- 计算机win7设置用户密码,怎么给win7电脑设置开机密码_w7电脑开机密码怎么设置...
- 【网页处理与文本分析】某电视剧弹幕信息情感分析
- pip install xx 时遇到There was a problem confirming the ssl certificate...的解决办法
- 计算机网络中的层次结构
- Selenium自动化测试代理问题
- JAVA版本号的问题 Java版本号与JDK版本
- function介绍
热门文章
- 通过ifrmae异步下载文档
- Linux Shell——函数的使用
- SELinux入门简介
- 【P1835】小红花
- ARC_xp_20160530
- Javascript常用的设计模式详解
- Linux中的Ramdisk和Initrd
- 服务器建网站www无法访问,IIS6服务器搭建网站无法访问解决方案总结_DOIT.com.cn...
- python 线型_CCF 202006-1 线性分类器 python
- mybatis源码_Mybatis源码之SqlSession