Effective STL:7、在程序中使用 STL


按照习惯,我们可以认为 STL 是由容器、迭代器、算法及函数对象组成的,但要在程序中正确而有效地使用 STL 却并非这么简单。在利用 STL 进行编程的时候,你需要知道什么时候该使用循环,什么时候该使用算法,什么时候该使用容器的成员函数。你需要知道什么时候该使用 equal_range 来代替 lower_bound,什么时候该使用 lower_bound 来代替 find,而又在什么时候该使用 find 而不是 equal_range。你需要知道如何用函数子取代函数以便提高 STL 算法的性能。你需要知道如何避免不可移植的或者不易理解的代码。你甚至需要知道如何阅读编泽器的错误消息,即使是上千个字符长的错误消息也要能够分析。你还需要知道关于 STL 文档、STL 扩展及完整的 STL 实现的 Internet 资源。


是的,只有了解了这些,你才能够在程序中有效地使用 STL。本章将会涉及所有这些你必须了解的 STL 知识。



第43条:算法调用优先于手写的循环


提高了软件的抽象层次,从而使我们的软件更易于编写,更易于文档化,也更易于拓展和维护。



第44条:容器的成员函数优先于同名的算法


成员函数往往更快。

成员函数通常与容器结合的更紧密。



第45条:正确区分 count、find、binary_search、lower_bound、upper_bound 和 equal_range


选择能符合你的行为和性能要求的算法或者成员函数,同时当你调用所选择的算法或者成员函数的时候,所需要做的工作尽可能地最少。



第46条:考虑使用函数对象而不是函数作为 STL 算法的参数


以函数对象作为 STL 算法的参数,这种做法提供了包括效率在内的多种优势。

从代码被编译器接受的程度而言,它们更加稳定可靠。



第47条:避免产生 “直写型” 的代码


在软件工程领域中有这样一条真理:代码被阅读的次数远远大于它被编写的次数。



第48条:总是包含正确的头文件


C++ 标准与 C 的标准有所不同,它没有规定标准库中的头文件之间的相互包含关系。



第49条:学会分析与 STL 相关的编译器诊断信息


通过文本替换来降低错误消息复杂度,一旦你有了一些实践经验之后,只需在脑子里执行这种替换即可。



第50条:熟悉与 STL 相关的 Web 站点


SGI STL 站点:http://www.sgi.com/tech/stl/

STLport 站点: http://www.stlport.org

Boost 站点:http://www.boost.org



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值