第0章 开始学习C++

1、<<的行为取决于它的操作数类型,<<会把它的右操作数的字符写到左操作数所指示的流中,他是结果就是它的左操作数。

2、std::endl是一个控制器,如果把一个控制器写到流中,那么我们就可以控制这个流了,std::endl所做的动作就是结束当前的输出行。

std::cout << "hello world" << std::endl;

整个表达式所产生的值是std::cout,此外,作为其副作用,它还会把hello world写到标准输出流并结束当前的输出行

第1章 使用字符串

1、#include与using的区别

C++里的头文件#include类似于C#解决方案中的引用

C++仅仅using namespace是不够的,必须要将含有此namespace的文件包含进来

C#中仅仅使用using namespace是不够的,必须要将含有此namespace的文件引用进来(如System.dll是工程在创建后自动引用的)

2、常量在定义的时候必须初始化,但对常量赋的值不一定是常量

const std::string greeting = "Hello, " + name;

3、字符串除了用 = 赋值,还可以用 ( ) 赋值

std::string stars(,'*');  //给stars赋值10个*  即********** (右边只能传字符,不能传字符串)

4、可以用+来把一个字符串和一个字符串直接量连接起来,但不能连接两个字符串直接量

第2章 循环和计数

1、size_type  我们使用这种类型,大到可以保存一个字符串中的最大字符个数

好处:不管要保存的string对象的字符个数有多少,都可以保证足够大的存储长度

如在有16位int型的机器上,用int类型变量最大只能表示32767个字符的string对象,而用string::size_type不会导致溢出

const std::string::size_type cols = greeting.size() +;

2、算术运算符的优先级比关系运算符的高

r==row- 等价于 r==(row-)

第3章 使用批量数据

1、在程序中,如果两个以上的字符串直接量仅仅是被空白符分隔开的话,那么这些字符串直接量就会被自动连接到一起

cout << "Enter all your homework grades,  "
"followed by end-of -file: ";
//等价于
cout << "Enter all your homework grades, followed by end-of -file: ";

2、cout.precision() 流在进行浮点数输出时所使用的精度

setprecision 为流的后继输出设置一个特定的有效位数。如编写setprecision(3)后,输出的形式通常是(十进制)小数点前两位,后一位

3、while (cin >> x) 用cin来作为条件等价于监测最近一次从cin读数据的尝试是否成功。

  以下的几种情况,我们从一个流读数据的尝试可能会失败:

(1)到达了输入文件的结尾

(2)碰到的输入跟试图读取的变量类型不一致

(3)系统在输入装置中检测到一个硬件问题

4、vector保存了一系列具有相同类型的数值

push_back函数:添加一个新元素到向量的末尾

vector<double> homework;
homework.push_back(x);

5、typedef表示定义的名称是特定类型的替代名

第4章 组织程序和数据

1、domain_error异常在头文件<stdexcept>中,表示函数参数的取值不合法

2、const vector<double>&

对参数类型为double的向量常量的引用,(双精度向量常量引用)

vector<double> homework;
//hw是homework的另一个名称,两者等价
vector<double>& hw = homework;
//const确保我们无法改变homework的值
const vector<double>& chw = homework; //定义引用的引用跟定义原对象的引用效果是一样的
vector<double>& hw2 = hw; //hw2 hw homework等价
const vector<double>& chw2 = chw; //chw2和chw等价

3、左值,用来指示非临时对象的值。

如果一个变量是左值,那么也可以是引用,或是返回一个引用的函数的调用结果。

与非常量引用参数对应的参数必须是左值

4、istream的clear()方法,清除了所有错误标记以使输入动作可以继续

5、谓词 是一个函数,返回bool类型

bool compare(const Student_info& x, const Student_info& y)
{
return x.name < y.name;
}
sort(student.begin(), students.end(), compare);

6、setw(n) 控制器,控制输出流的格式。把输出项填充成有特定数目的字符集,(填充空格,让字符达到指定长度)

7、头文件应该使用完整的限定名而不是使用using,否则包含头的程序都会获得一个using声明,而不管我们是否需要

第5章 使用顺序容器,并分析字符串

1、*间接引用运算符

.的优先级比*高 所以要写成(*iter).name  等价于 iter->name

2、如果容器只是(或主要是)从尾部增长和缩小的话,vector比list性能好

如果是从容器中删除很多元素,list比vector速度更快

索引,vector支持,list不支持

3、使用erase和push_back会使vector的迭代器失效,而不会使list的迭代器失效

4、getline 读入一整行 (包含行中空格)

[c++菜鸟]《Accelerate C++》读书笔记的更多相关文章

  1. 读书笔记——《谁说菜鸟不会数据分析—Python篇》

    最近刚读完一本新书,关注的公众号作者出的“谁说菜鸟不会数据分析—Python篇”,话说现在很多微信公众号大牛都在出书,这貌似是一个趋势.. 说说这本书吧,我之前看过一些网文,对于数据分析这一块也有过一 ...

  2. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  3. TJI读书笔记17-字符串

    TJI读书笔记17-字符串 不可变的String 重载”+”和StringBuilder toString()方法的一个坑 String上的操作 格式化输出 Formatter类 字符串操作可能是计算 ...

  4. Java多线程编程实战指南(核心篇)读书笔记(五)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76730459冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  5. Java多线程编程实战指南(核心篇)读书笔记(四)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76690961冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  6. Java多线程编程实战指南(核心篇)读书笔记(三)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76686044冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  7. Java多线程编程实战指南(核心篇)读书笔记(二)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76651408冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  8. Java多线程编程实战指南(核心篇)读书笔记(一)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76422930冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  9. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  10. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. 03008_ServletContext

    1.什么是ServletContext? (1)ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象    内部封装是该web应用的信息,Servle ...

  2. luogu1262 间谍网络

    贿赂所有能贿赂的,如果还有人不被访问则显然是NO. 否则,必定为YES.强联通分量缩成一个DAG,若某点的入度为零,则答案要算上它的. #include <iostream> #inclu ...

  3. 80x86保护模式下IDT和中断调用过程分析

    80x86保护模式下IDT和中断调用过程分析 1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来.与GDT和LDT类似,IDT也是由8字节长度的描述符组成.IDT空描述符的存 ...

  4. Leetcode 457.环形数组循环

    环形数组循环 给定一组含有正整数和负整数的数组.如果某个索引中的 n 是正数的,则向前移动 n 个索引.相反,如果是负数(-n),则向后移动 n 个索引. 假设数组首尾相接.判断数组中是否有环.环中至 ...

  5. JS数组的下标如果是字符串的排序

    var test = []; test['0'] = 0; test['1'] = 1; test['2'] = 2; 这样一个数组的排序方式是字符为‘1’的数组元素排第一,为‘0’的排在最后

  6. not exists、left join/is null、not in 行为

    测试数据 20:25:52[test](;)> select * from t;+------+------+| id   | b    |+------+------+|    1 | NUL ...

  7. 【转】UML中的几种关系详细解析

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  8. iOS----闪退,无报错原因,经典解决方案

    在iOS开发时,有时候遇到libc++abi.dylib handler threw exception这样的异常,  虽然在断点出加上了All Exceptions,也断到相应的代码了,但是没打印对 ...

  9. C# Settings.settings的用处

    1.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: 2.读取配置值 t ...

  10. 两种KMP题+KMP模版整理

    最近稍微看了下KMP,不是很懂他们大神的A题姿势,但是模版总该还是要去学的. 其中next数组的求法有两处区别. 第一种:求主串中模式串的个数.HDU2087 剪花布条和HDU4847 Wow! Su ...