第十章 泛型算法
建议有需要再仔细读这部分,初次学习,相当于只了解了一些概念
泛型算法:标准库定义的可用于多种容器的通用算法,因为传入的是迭代器,所以不依赖于容器的类型,但依赖于具体的元素类型的操作。并且,泛型算法并不会改变底层容器的大小,只会保存和移动元素,不会直接添加和删除。
谓词
lamda表达式:一般的谓词是一元谓词或二元谓词,如果想传递更多的参数,则没有办法。这时,可以用lamda表达式
其他迭代器:有需要再去细读这部分吧
插入迭代器,流迭代器,反向迭代器,移动迭代器
第十一章 关联容器
https://www.cnblogs.com/bakari/p/3332230.html
find函数的参数是关键字,返回的是一个迭代器,对有序容器,关键字必须定义元素比较的方法。
C++primer说set中的元素是只读的,不可以修改:但我看到下面这篇帖子说: gcc是只读不可修改的,
而微软的VC++6.0和VS2005的是可以修改的。
https://blog.csdn.net/stpeace/article/details/42378103
insert和erase的返回值:需要时再查询
map的下标操作:如果不想在k不存在时插入元素,则可以使用find()
map的下标操作返回类型:find()返回的是value_type, 即是pair
无序容器:
无序容器的使用:
疑问:关键字不可重复的map和set是如何去重的?一定需要key的元素类型有==判断吗
第十二章 动态内存
https://www.cnblogs.com/Przz/p/6416042.html
new与构造函数 不带()是默认初始化
带()是值初始化
const对象的特点就是必须初始化,而new分配的对象有默认初始化和值初始化两种,对于内置类型和组合类型的new默认初始化,其值是未定义的,所以不能作为const对象的初始值,而必须使用new值初始化方式;对于有默认构造函数的类类型,无论是new的默认初始化还是值初始化,其值都是确定的,所以可以作为const对象的初始值。
shared_ptr和new的结合使用