Effective STL 中文版(大全)
Effective STL 中文版(大全)
作者:winter
候捷说,对于STL,程序员有三个境界,开始是使用STL,然后是理解STL,最后是补充STL。Effective STL是一本非常好的书,帮助你更好的理解STL,其作者就是《Effective C++》一书的作者。如果你已经初步了解了STL的容器、迭代器、算法和函数,而又想更好的了解STL,那么《Effective STL》是你的最佳选择。 还有一部分没有找到链接,如果再找不到我会自己试着翻译一下:)
容器
- 条款1: 仔细选择你要的容器
- 条款2: 小心对“容器无关代码”的幻想
- 条款3: 使容器里对象的拷贝操作轻量而正确
- 条款4: 用empty来代替检查size是否为0
- 条款5: 尽量使用范围成员函数代替他们的单元素兄弟
- 条款6: 警惕C++的及其令人迷惑的分析
- 条款7: 当使用new得指针的容器时,切记在容器销毁前delete那些指针
- 条款8: 千万不要把auto_ptr放入容器中 new
- 条款9: 小心选择删除选项
- 条款10:当心allocator的协定和约束
- 条款11: 了解自定义allocator的正统使用法
- 条款12:对STL容器的线程安全性的期待现实一些
vector和string
- 条款13: 尽量使用vector和string来代替动态申请的数组
- 条款14:用reserve来避免不必要的内存重新分配
- 条款15: 当心string的实现中的变化
- 条款16: 如何将vector和string的数据传给传统的API
- 条款17: 用“交换技巧”来修正过度的容量
- 条款18: 避免使用vector<bool>
关联容器
- 条款19: 了解相等和等价的区别
- 条款20: 为包含指针的关联容器指定比较类型
- 条款21: 永远让比较函数对相等的值返回false
- 条款22:避免对set和multiset的键值进行修改
- 条款23: 考虑用排序的vector代替关联容器
- 条款24: 当效率很关键时尽量用map::insert代替map::operator
- 条款25: 让自己熟悉非标准的hash容器
迭代器
- 条款26: 尽量使用iterator代替const_iterator,reverse_iterator和...
- 条款27: 使用distance和advance把const_iterators转化成iterators
- 条款28: 了解如何通过reverse_iterator的base得到iterator
- 条款29: 需要一字符一字符输入时请用istreambuf_iterator
算法
- 条款30: 确保目的范围足够大
- 条款31: 理解你的排序操作new
- 条款32: 如果你真的想删除东西的话在remove-like的算法后紧接上erase
- 条款33: 当心在包含指针的容器使用remove-like的算法
- 条款34: 注意哪些算法需要排序过的范围
- 条款35: 通过mismatch或lexicographical_compare实现简单的忽略大小写字符串比较
- 条款36: 用not1和remove_copy_if来表现copy_if
- 条款37: 用accumulate或for_each来统计序列
仿函数,仿函数类,函数等等
- 条款38: 把仿函数类设计成值传递的
- 条款39: 用纯函数做predicate
- 条款40: 增强仿函数类的适应性
- 条款41:明确ptr_fun, mem_fun和mem_fun_ref的区别
- 条款42: 保证less是operator<的意思
用STL编程
- 条款43: 尽量用算法调用代替手写循环 new
- 条款44: 尽量用成员函数代替同名的算法
- 条款45: 注意count、find、binary_search、lower_bound、upper_bound和equal_range的区别new
- 条款46: 考虑用函数对象代替函数作为算法的参数
- 条款47:避免产生只写代码
- 条款48: 总是#include适当的头文件
- 条款49:学会破解STL相关的编译器出错信息
- 条款50: 让自己熟悉STL相关的网
Effective STL 中文版(大全)的更多相关文章
- 容器使用的12条军规——《Effective+STL中文版》试读
容器使用的12条军规——<Effective+STL中文版>试读 还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...
- Effective STL中文版 译序
<Effective STL中文版>译序 就像本书的前两本姊妹作(Effective C++.More Effective C++)一样,本书的侧重点仍然在于提升读者的经验,只不过这次将焦 ...
- 《Effective STL中文版》前言
<Effective STL中文版>前言 我第一次写关于STL(Standard Template Library,标准模板库)的介绍是在1995 年,当时我在More Effec ...
- Effective C#中文版
我看的书是<Effective C#中文版——改善C#程序的50种方法>,Bill Wagner著,李建忠译.书比较老了,04年写的,主要针对C#1.0,但我相信其中的观点现在仍有价值.( ...
- [置顶] Effective STL 学习笔记
看Effective STL 作的一些笔记,希望对各位有帮助. 以下是50条条款及相关解释. 容器 1. 慎重选择容器类型,根据需要选择高效的容器类型. 2. 不要试图编写独立于容器类型的代码. 3. ...
- C++之Effective STL
今天看了下websocket的知识,了解到这是html5新增的特性,主要用于实时web的通信.之前客户端获取服务端的数据,是通过客户端发出请求,服务端进行响应的模式,或者通过ajax每隔一段时间从后台 ...
- 《Effective Java中文版第二版》读书笔记
说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...
- Effective STL 读书笔记
Effective STL 读书笔记 标签(空格分隔): 未分类 慎重选择容器类型 标准STL序列容器: vector.string.deque和list(双向列表). 标准STL管理容器: set. ...
- Effective STL读书笔记
Effective STL 读书笔记 本篇文字用于总结在阅读<Effective STL>时的笔记心得,只记录书上描写的,但自己尚未熟练掌握的知识点,不记录通用.常识类的知识点. STL按 ...
随机推荐
- ToolStripButton样式
public static class Extensions { public static void SetMouseDownStyle(this ToolStripButton button) { ...
- NYOJ-85 有趣的数 AC 分类: NYOJ 2014-01-17 21:42 240人阅读 评论(0) 收藏
这道题目就是,找规律,小学奥数,找规律不难吧, #include<stdio.h> int sc(int x); int main(){ int n=0; int num,cs,k; sc ...
- UML架构(转载)
任何真正的世界系统是由不同的用户使用.用户可以是开发人员,测试人员,商务人士,分析师和等等.所以在设计一个系统的体系结构是用不同的角度心态.最重要的部分是从不同的观看者的角度来看,以可视化的系统.我们 ...
- .net深入体验与实战精要--ASP.NET开发大杂烩(转)
转自:http://www.cnblogs.com/sunhan/p/3371337.html 正巧今天遇到一个获取动态生成table中的一个动态生成的TextBox的值的时候总是findcontro ...
- LUCAS 定理
原来一张图就就能证明:C(N,M)%P,p是素数. 简直太炫酷 先膜拜会 #include<iostream>#include<cstdio>#include<ctime ...
- self._raiseerror(v) File "D:\GameDevelopment\Python27\lib\xml\etree\ElementTree.py", line 1506, in _raiseerror
D:\BaiDuYun\Plist>python unpack_plist.py lobbyRelieveTraceback (most recent call last): File &quo ...
- C#中“貌似”跳出while(true)死循环
当程序第一次执行到Read()函数时,程序会被阻塞,然后输入字符,Enter之后程序被激活,windows平台会自动在输入字符之后加入回车符和换行符,此时输入流中就有三个字符,然而read每次只读取一 ...
- OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
转自: http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...
- Linux网络编程7——使用TCP实现双方聊天
思路 主线程负责发送消息,另一线程负责接收消息.服务端和客户端均是如此. 注意 当A方close掉用于通信的socket端口后,该端口是不会立即关闭的.因为此时可能B方的信息还没send完.因此,此时 ...
- badboy 之 查看回放结果
在运行脚本时,Badboy提供了Summary功能方便我们监控回放结果状态,如下Summary view: 以下表格对运行情况的各个维度进行解释: 统计点 描述 Played 运行或回放脚本的次数 S ...