摘要: 条款30:确保目标区间足够大条款31:了解各种与排序有关的选择//使用unaryPred划分输入序列,使得unaryPred为真的元素放在序列开头partition(beg, end, unaryPred); //对[beg, mid)个元素进行排序,排序后[beg, end)范围元素... 阅读全文
posted @ 2013-11-26 20:11 skyline09 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 条款26:iterator 优先于 const_iterator, reverse_iterator, const_reverse_iteratoriterator, reverse_iterator 对应于 T*const_iterator, const_reverse_iterator 对应于 ... 阅读全文
posted @ 2013-11-26 20:02 skyline09 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 条款19:理解相等(equality)和等价(equivalence)的区别相等的概念是基于 operator== 的,如果 operator== 的实现不正确,会导致并不实际相等等价关系是以"在已排好序的区间中对象值的相对顺序"为基础的,关联容器默认是以 operator ssp;其实是: set... 阅读全文
posted @ 2013-11-26 19:55 skyline09 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 条款13:vector、string优先于动态分配数组string是basic_string的类型定义许多string的背后实现都采用了引用计数的技术,可以消除不必要的内存拷贝和不必要的字符拷贝条款14:使用 reserve 来避免vector容器不必要的重新分配vector和string的 rea... 阅读全文
posted @ 2013-11-26 19:48 skyline09 阅读(1504) 评论(0) 推荐(0) 编辑
摘要: 0.前言随机访问迭代器: vector、string、dequeSTL的一个革命性的方面就是它的计算复杂性保证条款01:慎重选择容器类型c++提供的容器:标准STL序列容器:vector、string、deque、list标准STL关联容器:set、multiset、map、multimap非标准S... 阅读全文
posted @ 2013-11-26 19:35 skyline09 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 条款32:确定你的 public 继承塑模出 is-a 关系public inheritance 意味着 is-a 关系class Derived 以 public 形式继承 class Base, 则每一个 Derived对象同时也是一个 Base对象,反之不成立可以施行于Base class 对... 阅读全文
posted @ 2013-11-26 17:35 skyline09 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 条款26:尽可能延后变量定义式的出现时间尽可能延后变量的定义,知道非得使用该变量的前一刻为止方法A:Widget W;for (int i = 0; i (expression):唯一可以将对象的常量性移除(将 const 转 non-const)dynamic_cast(expression):除... 阅读全文
posted @ 2013-11-26 16:45 skyline09 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 条款18:让接口容易被正确使用,不易被误用必须考虑客户可能做出什么样的错误(防御式编程)std:shared_ptr会自动使用它的"每个指针专属的删除器",消除了"cross-DLL problem"(对象在DLL中被 new 创建,却在另一个DLL中 delete 销毁)条款19:设计 class... 阅读全文
posted @ 2013-11-26 14:25 skyline09 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 条款13:以对象管理资源资源包括:动态分配内存、文件描述符、网络socket、互斥锁、数据库连接把资源放进对象内,可以依赖c++的"析构函数自动调用机制"确保资源被释放智能指针: 是一个"类指针"对象,引用计数型指针,当引用对象数为0时,自动删除该资源std::shared_ptr pClass(n... 阅读全文
posted @ 2013-11-26 14:10 skyline09 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 条款05:了解c++默默编写并调用了哪些函数编译器可以暗自为 class 创建default构造函数,copy构造函数,copy assignment操作和析构函数所有这些函数都是 public 并且 inline编译器自动生成的析构函数是non-virtual 的编写一个空类 class Widg... 阅读全文
posted @ 2013-11-26 13:43 skyline09 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 条款01:c++多范式编程语言条款02:尽量以 const, enum, inline 替换#define1. 提供类型安全检查2. 去除函数调用开销3. 避免宏的二义性const double pi = 3.1415926;const std::string authorName("wwwjieo... 阅读全文
posted @ 2013-11-26 11:30 skyline09 阅读(895) 评论(0) 推荐(0) 编辑
摘要: 动态规划是神器,背包问题又是动态规划中的最主要一类,必须好好学学。这个公式就是背包问题的状态转移方程,具有普适性。F[i, v]表示前 i 种(注意一种和一件的区别) 物品在背包容量为 v 的情况下所获得的最大价值。Ci表示第 i 种物品的费用(即占用背包容量)Wi表示第 i 种物品的价值k 表示 ... 阅读全文
posted @ 2013-04-01 00:49 skyline09 阅读(1270) 评论(2) 推荐(1) 编辑
摘要: 1 欢迎来到我的博客园2 记录自己学习的点点滴滴 阅读全文
posted @ 2013-03-21 10:21 skyline09 阅读(211) 评论(1) 推荐(0) 编辑