Effective STL---50

容器
1. 仔细选择你的容器
2. 小心对“容器无关代码”的幻想
3. 使容器里对象的拷贝操作轻量而正确
4. 用empty来代替检查size()是否为0
5. 尽量使用区间成员函数代替他们的单元素兄弟
6. 警惕C++最令人恼怒的解析
7. 当使用new指针的容器时,记得在销毁容器前delete那些指针
8. 永不建立auto_ptr的容器
9. 在删除选项中仔细选择
10.注意分配器的协定和约束
11.理解自定义分配器的正确用法
12.对STL容器线程安全性的期待现实一些
vector和string
13.尽量使用vector和string来代替动态分配的数组
14.使用reservr来避免不必要的重新分配
15.小心string实现的多样性
16.如何将vector和string的数据传给遗留的API
17.使用“交换技巧”来修整过剩容量
18.避免使用vector<bool>
关联容器
19.了解相等和等价的区别
20.为指针的关联容器制定比较类型
21.永远让比较函数对相等的值返回false
22.避免原地修改set和multiset的键
23.考虑用有序vector代替关联容器
24.当关乎效率时应该在map::operator[]和map-insert之间仔细选择
25.熟悉非标准散列容器
迭代器
26.尽量用iterator代替const_iterator,reverse_iterator和const_reverse_iterator
27.用distance和advance把const_iterator转化成iterator
28.了解如何通过reverse_iterator的base得到iterator
29.需要一个一个字符输入时考虑使用istreambuf_iterator
算法
30.确保目标区间足够大
31.了解你的排序选择
32.如果你真的想删除东西的话就在类似remove的算法后接上erase
33.堤防在指针的容器上使用类似remove的算法
34.注意那个算法需要有序区间
35.通过mismatch或lexicographical比较实现简单的忽略大小写字符串比较
36.了解copy_if的正确实现
37.用accumulate或for_each来统计区间
仿函数,仿函数类,函数等
38.把仿函数类设计为用于值传递
39.用纯函数作判断式
40.使仿函数类可适配
41.了解使用ptr_fun,mem_fun和mem_fun_ref的原因
42.确定less<T>表示operator<
使用STL编程
43.尽量用算法调用代替手写循环
44.尽量用成员函数代替同名的算法
45.注意count,find,binary_search, lower_bound, upper_bound, 和 equal_range的区别
46.考虑使用函数对象代替函数作算法的参数
47.避免产生只写代码
48.总是#include适当的头文件
49.学习破解有关STL的编译器诊断信息
50.让你自己熟悉有关STL的网站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library》是一本由Scott Meyers撰写的经典书籍,旨在帮助读者更好地使用C++标准模板库(STL)。 这本书总结了50条关于STL的使用技巧和最佳实践。以下是其中的一些要点: 1. 使用STL容器时,确保在需要插入和删除元素时优先选择vector而不是list。因为vector在插入和删除操作上效率更高。 2. 当需要快速查找某个元素时,使用set或map等基于红黑树的容器。 3. 如果需要按照某个自定义的排序规则来对容器中的元素进行排序,可以使用set或者priority_queue。 4. 在迭代器失效的情况下,不要试图重新利用这些迭代器,而应该重新获取新的迭代器。 5. 使用算法库中提供的算法,如for_each、find、copy等,可以减少编写重复代码的工作。 6. 使用STL中的函数对象和函数适配器,可以更好地处理算法的复杂需求。 7. 使用STL中的智能指针(如shared_ptr和unique_ptr)来管理动态分配的内存,可以避免内存泄漏的问题。 8. 避免使用裸指针和new/delete操作符,在可能的情况下使用STL中的容器和智能指针。 9. 使用STL提供的容器适配器,如stack、queue和priority_queue,可以方便地实现特定功能的容器。 10. 注意STL中的异常处理机制,正确处理异常可以提高程序的健壮性。 总之,通过学习并遵循《Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library》中的技巧和最佳实践,我们可以更有效地利用STL,提高程序的性能和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值