您的位置:首页 > 编程语言 > C语言/C++

Accelerated C++ 学习笔记1

2015-08-15 16:52 387 查看
1.与非常量引用参数对应的参数必须是左值,也就是说,它们必须是非临时对象。
2.按值传递或与一个常量引用连接在一起的参数可以去任何值

3.max函数是在头文件<algorithm>中定义的,它的两个参数的类型必须是一致的

4.用sew控制输出流的格式,用它来让库把下一个输出项填充成有特点数目的字符集(通过给输出项添加空格来完成),而且每个标准输出运算符在完成了它的输出动作之后就会马上重置流的宽度。

例如:sew(maxlen+1)<<students[i].name
这条语句的作用就是为name填充字符,同时输出name的运算符在完成了他的输出动作之后将把流的宽度重置为0.

5.inline——内联是可选的,用它来限定一个函数定义。为了避免函数调用的额外开销,编译器会用函数体的一个复制来替换对函数的每一个调用并根据需要进行修正。为此,编译器必须看到函数的定义,因此内联子过程通常是在头文件而不是在源文件中定义的。

6.相比于索引,C++库提供了一系列的名为迭代器(iterator)的类型,这些类型能够让我们以库能够控制的方式来访问数据结构。

7.我们能把一个iterator类型的对象转换成const iterator类型的,但反过来就不行

8.当*被用于一个迭代器的时候,它会返回一个左值,而这个左值就是迭代器指向的元素。

9.vector(向量)是为快速随机访问而被优化的,而list是可以在容器的任何位置快速的插入和删除元素了。也就是说,如果容器只是从尾部增长和缩小的话,那么vector的性能会比list要好的。

它们之间的重大差异是:对于list来说,erase和push_back操作并不会使指向其他元素的迭代器失效,只有指向已被删除元素的迭代器才会失效,这是因为这个元素已经不存在了。

因为list不支持完全随机的访问,所以我们就不能使用标准库提供的sort函数来为存储在list中的值排序,对此,list提供了自己的sort成员函数。

10.string类的一个substr成员,它的参数是一个索引和一个长度,作用创建一个新的字符串,而这个新的字符串包含了来自原始字符串的一个副本。

11.string库的getline函数,是读输入直到行尾,有两个参数,一个参数是一个输入流,它会从这个流读数据;第二个参数是字符串引用,我们把读到的数据存储在这个字符串引用中。而getline返回一个引用给那个我们从中读数据的流。

while(getline(cin,s));

12.container<T>::size_type ,这是一个类型名称,用来保存这个容器可能存在的最大实例的长度

c.size() ,返回值的类型是size_type,返回元素的个数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: