- 博客(10)
- 收藏
- 关注
原创 Effective STL 读书笔记 8
Item 38:为满足按值传递设计函数类(functor class)。 我们习惯上:将 functor 称作函数对象,而不是仿函数;将 functor class 称作函数类,而不是其他。 一些 STL 的实现中的一些算法并不允许将函数对象(算法中的谓词)按引用传递,而且这样的编程风格也并不常见。所以,算法中的函数对象会按值传递,即在算法中被复制。 copy 导
2006-03-29 02:31:00 1372
原创 Effective STL 读书笔记 7
Item 35:使用 mismatch 或者 lexicographical_compare 实现简单的忽略大小写的字符串比较函数。 mismatch 实现:int ci_compare (const string &s1, const string &s2) { if (s1.size() return ci_compare_impl(s1, s2);
2006-03-27 00:45:00 910
原创 Effective STL 读书笔记 6
Item 30:在应用算法时,确定目标范围(destination ranges)足够大。 首先以下代码是错误的,transform 将对 dest.end() 开始的 N 个元素调用赋值操作,但这些元素并不存在:transform(src.begin(), src.end(), dest.end(), transmogrify);
2006-03-26 02:28:00 1079
原创 Effective STL 读书笔记 5
Item 26:优先使用 iterator 而不是 const_iterator, reverse_iterator, const_reverse_iterator。 STL 的许多算法要求输入迭代器类型为 iterator 而不是其他几种。 迭代器可以进行如下转换: 由上可以看出 const_iterator 无法转换成 iterator,而且 re
2006-03-25 01:29:00 998
原创 Effective STL 读书笔记 4
Item 19:区分等价(equivalence)和相等(equality)。 现看看英汉字典对等价(equivalence)的定义:一种逻辑操作符,具有下述性质:若P是一个命题,Q是一个命题,R是一个命题,当且仅当 所有的命题为真或所有的命题为假时,P,Q,R,...的等价才为真。 在 STL 中有两种比较对象是否相等的方法,方法一,相等(equality):
2006-03-24 01:45:00 1109
原创 Effective STL 读书笔记 3
Item 13:用 vector 和 string 替代动态分配的数组。 大多数的 STL 实现中 string 用到了引用计数,避免引用计数的方法是用 vector 替代。 Item 14:使用 reserve 避免不必要的内存重分配。Item 15:注意 string 的多种实现方法。 作者从 sizeof(string)
2006-03-21 23:43:00 921
原创 Effective STL 读书笔记 2
Item 10:注意 allocator 的惯例和限制。 Allocator 最初是为了对在16位系统上的 near 和 far 指针内存访问模式进行抽象而加入的(虽然这个尝试失败了),之后 Allocator 被设计成为标准库提供全攻能的内存管理模块。但由于效率问题,标准委员会弱化了 Allocator 的功能。甚至打多数的 container 根本就不使用 allocator,也
2006-03-21 22:25:00 856
原创 Exploring the C++ Unit Testing Framework Jungle
Exploring the C++ Unit Testing Framework Jungle 一篇对各种 C++ Unit Test 工具进行评测/选择的文章。作者:Noel Llopis 时间:28 December 2004其中评测了包括:CppUnit、Boost.Test、CppUnitLite、NanoCppUnit、Unit++、CxxTest。但是没有包括 Google 排名第一的
2006-03-09 23:00:00 987
原创 Effective STL 读书笔记 1
读技术书籍是一件开心的事情,但从来没有哪本书像 Effective 这样让我这么开心。Effective C++ 如是,More Effective C++ 如是,Effective STL 亦如是。没有哪位作者比 Scott Meyers 更懂得轻松与严肃的学习了。以下只列举被我“忽略”和“几乎忽略”的东东。Item 1: Choose your container with care.
2006-03-05 21:59:00 970
原创 Windows fat32/ntfs 与 Linux ext2/ext3 互访问
重装 Windows 系统之后,有一大堆的软件需要重新安装&配置,总结一下,正好当作 Blog 的好题材。等 Fedora Core 5 出正式版后,又有一大堆 Linux 的设置需要总结。工作中经常需要在 Windows 和 Linux 两个系统里飞来飞去,所以需要互相访问对方的文件系统。我指的是在 Linux 中访问 Windows 的 fat32/ntfs 分区,及在 Windows 中访问
2006-03-01 18:59:00 3240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人