effective STL读书笔记

来源:互联网 发布:方文山黄伟文 知乎 编辑:程序博客网 时间:2024/05/16 04:29

1、  序列容器和关联容器使用情况,注重点不同而不同,比如插入、删除、元素顺序

4、用empty来判断是否为0

5、用assign来进行区间成员复制

6、注意函数声明和函数参数的区别

7、用指针容器时候要注意,尽量用智能指针,注意new和delete

8、不要用auto_ptr容器

9、注意用remove和eraseremove_if。针对不容类型的容器,采用不同的方法删除

13、尽量用vector和string代替数组,这样省去了new和delete

14、注意容器空间,每次添加元素的时候都是翻倍增长,所以可以提前分配空间,以及利用capacity和size来删去不用内存

16、vector和数组api接口的传递,String和字符的传递

17、利用交换技巧将过剩容量去除,swapvector<T>(contestants).swap(contestants)

18、不要使用vector<bool>

19、关联容器中注意相等和等价的区别,set是等价,map是相等

20、指针的关联容器,比如set的,比较适合要自定义,否则只比较指针的值。

21、对于set的关联容器,如果插入的值和里面的值相等,要返回false

22、对于set和multiset,不要原地修改其中元素,会破坏结构,但是可以修改成员内部的和排序无关的东西。Map和multimap是都不能修改。其中有安全对关联容器中的元素修改的方法。

23、看所需容器主要进行哪种阶段操作,如果只是查找,尽量用vector,他节省内存,如果删除插入多,则还是关联容器

24、当对关联容器插入元素是尽量用insert,当修改时用operator=

25、尽量用iterator,注意各个iterator之间的关系,继承已经const

32、remove erase详细介绍

33、在指针作为元素的容器中使用remove时,提前要删除指针

43、尽量用容器内部的函数代替手写函数,比如循环等 for_each(lw.begin(),lw.end(),

44、尽量用容器的成员函数代替同名算法

45、用什么容器,include什么头文件,该条列举了所有相关的头文件