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,返回元素的个数
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,返回元素的个数
相关文章推荐
- sscanf,snprintf,sprintf小结
- C++ bitset类的使用与简介
- 贪心算法之ian Ji -- The Horse Racing
- 2016 C语言面试题——字符串函数的实现
- C++11 move 语义
- c++连接数据库的头文件设置
- C/C++混合编程出现:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)问题的解决方案
- (转载)在C++程序中使用pbrt进行渲染
- protobuf 一个c++示例
- C语言数组初始化全部为0
- Codeforces Round #283(Div.2) A,B,C,D,E 解题报告
- [C++11 并发编程] 07 - Mutex 死锁
- C/C++ 中struct嵌套的内存分配
- C++ Primer Plus 第6版 中文版 第4章编程练习
- Visual C++开发工具与调试技巧整理
- C++泛型编程思想方法总结
- C语言中关于 赋值语句X=Y的解析
- win8.1 和VC++ 6.0的兼容问题解决
- C语言学习笔记——基本语法
- 迭代器,数组和指针瞎扯扯