上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
  2011年3月14日
摘要: stl提供了很多泛型算法,基本涵盖了一般程序所能应用到的所有算法。本篇以目录式的方式,介绍stl的包含的算法。在以后的编程实践中,如果遇到相似的问题,应该参考stl的算法代码。 数值算法 1、T accumulate(InputIterator first, InputIterator last, 阅读全文
posted @ 2011-03-14 22:16 longhuihu 阅读(134) 评论(0) 推荐(0) 编辑
  2011年2月26日
摘要: 关联式容器 所谓关联式容器,观念上类似于关联式数据库:每笔数据都有一个键值(key)和一个实际值(value)。当元素被插入容器时,内部机制根据键值,按着一定的规则将元素置于特定的位置。关联式容器没有所谓头尾的概念(只有最大元素,最小元素),所以不会有类似pus... 阅读全文
posted @ 2011-02-26 14:30 longhuihu 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 凸函数(convex function) 凸函数是一个f {R:R},对任意αβ>=0且α+β=1,有f(αx+βy)<= αf(x)+βf(y)。 凸函数的形状如下图所示: 推论:对于a1,a2,a3...,an>0且a1+a2+a3+...+an=1,有f(a1x1+a2x2+...+anxn) 阅读全文
posted @ 2011-02-26 10:31 longhuihu 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 在应用工程中,需要在现有的数据结构上有所创新,但很少需要创造出全新的数据结构。通常情况下,只要向标准的数据结构中增加一些信息即可。可以对数据结构编入新的造作,以支持所需的应用。但是,数据结构的扩张并不总是轻而易举的,附加的信息需要能为该数据结构的常规操作所更新和维护。这一章讨论通过扩展红黑树构造的数 阅读全文
posted @ 2011-02-26 10:20 longhuihu 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一棵高度为h的查找树的各种操作的性能为O(h),当树的高度较低时,性能较好,当高度很高时,和链表没什么区别。从上一章可以知道,随机构造的二叉查找树的期望高度为O(lgn)。本章介绍一种平衡的查找树:红黑树,确保在最坏情况下,基本动态集合的操作时间为O(lgn)。 红黑树的性质: 1) 每个结点是红的 阅读全文
posted @ 2011-02-26 10:08 longhuihu 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 查找树是一种数据结构,它支持多种动态集合操作,包括search, minimum, maximum, predecessor, successor, insert以及delete。他既可以用作字典,也可以用作优先队列。 二叉查找树上基本操作的执行时间和树的高度成正比。对一棵n个结点的完全二叉树来说, 阅读全文
posted @ 2011-02-26 10:04 longhuihu 阅读(199) 评论(0) 推荐(0) 编辑
  2011年2月19日
摘要: stl里的容器按元素在容器内的排列方式,可以分为序列式和关联式两种。 所谓序列式容器,其中的元素时可序的,即元素集合呈线性关系。 C++本身提供了一个序列式容器array,stl提供了vector,list,deque,stack,queue,priority_que... 阅读全文
posted @ 2011-02-19 21:47 longhuihu 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1、迭代器的的设计思维——stl的关键所在无论是泛型思维或STL的实际运用,迭代器都扮演着重要角色。STL的中心思想在于将容器和算法翻开,彼此独立。容器和算法的泛型化,从技术角度看并不困难,C++的class template和function template可以分... 阅读全文
posted @ 2011-02-19 17:03 longhuihu 阅读(131) 评论(0) 推荐(0) 编辑
  2011年1月22日
摘要: 侯捷STL源码剖析中列出了list的sort算法源码,感觉挺有意思: template <class T, class Alloc> void list<T,Alloc>::sort() { if (node->next==node||link_type(node->next)->next==nod 阅读全文
posted @ 2011-01-22 11:36 longhuihu 阅读(110) 评论(0) 推荐(0) 编辑
  2010年12月28日
摘要: API对设计流程的影响 Seibel:你设计软件的流程是什么样的?打开Emacs就开始写代码,然后改来改去直到程序写好?还是坐到沙发上拿着一打纸先列个提纲? Bloch:很多年前,我在OOPSLA(译者注:面向对象编程、系统、语言和应用国际研讨会。)上作了一个演讲... 阅读全文
posted @ 2010-12-28 13:35 longhuihu 阅读(157) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页