代码改变世界

STL源码剖析之序列式容器list

2011-06-07 13:48 by Aga.J, 917 阅读, 1 推荐, 收藏, 编辑
摘要:33 ListList是一个紧凑型的容器,每次插入或者删除一个元素,就需要配置或者释放一个元素空间,并且,对于任何位置的元素插入或元素移除,list都是【常数】时间List的节点和List本身是不同的结构(这和vector一致)Template<class T>Struct __list_node{Typedef void* void_pointer; // typedef __list_node<T>* pointer;Void_pointer prev;Void_pointer next;T data;} 可以看出stl的list是基于链表的。因为list不是一种基 阅读全文

STL源码剖析之序列式容器vector

2011-06-07 10:00 by Aga.J, 1774 阅读, 0 推荐, 收藏, 编辑
摘要:常见的数据结构:array,list,tree,stack,queue,hash table,set,map 可以将上面的数据结构按照数据组织形式分为 sequence 和 associative两种类型。28 序列式容器,其中的元素都是“可序”的,C++语言提供了array,而STL提供了vector,list,deque( stack,queue ),priority-queue,而其中 stack和queue是在deque基础上改进,所以实际上是一种adapter。29 vector Vector的数据安排和操作方式 和 常见的array类型很像,但是唯一的不同就在于vector的空间. 阅读全文

J2EE学习笔记:第二天

2011-06-05 17:47 by Aga.J, 482 阅读, 0 推荐, 收藏, 编辑
摘要:11 J2EE环境相关知识安装JDK,设置必要的路径(1) 环境变量:J2EE_HOME=jdk位置,作为其他变量地址的前缀(2) PATH变量:指向JDK提供的工具(如javac)的地址,%J2EE_HOME%\bin(3) CLASSPATH变量:添加J2EE JARJ2EE 应用程序所有的文档和类文件都在SDK包内。详细可参见jdk文件下的readme的html文件(D:\Java\jdk1.6.0_23\README_zh_CN.html),主要介绍了以下内容:(1)JavaTM Platform, Standard Edition Development Kit (JDKTM)。JD 阅读全文

STL源码剖析之traits技巧(下)

2011-06-05 10:45 by Aga.J, 1240 阅读, 0 推荐, 收藏, 编辑
摘要:21 Traits方法:可以用来萃取迭代器的特性(接着上一篇文章说到原生指针与traits技巧的使用,这里拓展了一点其他类型的使用方法,和上一篇文章介绍的方法一样。)Template<class I>Struct iterator_traits //输入带有value_type的指针{Typedef typename I::value_type value_type;}Template<class I>Typename Iterator_traits<I>::value_typeFunc(I ite){Return *ite;}Template<cla 阅读全文

STL源码剖析之迭代器的概念和traits编程的技法(上)

2011-06-05 10:06 by Aga.J, 1036 阅读, 0 推荐, 收藏, 编辑
摘要:15 Iterator是一种抽象的设计概念: design pattern中有一种iterator的模式: 提供一种外部方法,使之可以依序访问聚合器所含的各个元素,而又无需暴露该聚合物的内部表述方式(也就是说做到和聚合物的类型无关); STL的中心思想: 将数据容器和算法分开,彼此独立设计,最后使用粘合剂将他们粘合起来。要做到 容器的泛型化 我们可以借助class template,要做到 算法的泛型化,我们可以借助 function template。而他们之间的交合,就需要细致考虑。 下面是三者之间完美结合的例子Template<class InputIterator, class 阅读全文

J2EE学习笔记:第一天

2011-06-04 16:23 by Aga.J, 577 阅读, 0 推荐, 收藏, 编辑
摘要:21天学通J2EE第一天挑战N层开发1 单层应用程序的缺点:因为表示层,业务层,数据访问层都被放置在同一个应用程序中,所以一旦程序功能的任何部分发生了变化,都潜在的影响其他部分,需要重新编译代码中的很好多部分,增加了添加或者修改功能的开销。尤其是在多用户的情况下,软件新版本的推行会变得越来越复杂。2 向二层开发进军使用二层开发的主要目的是不同的机器上的多个应用程序可以共享数据,所以我们可以架设一个单独的数据库服务器。这样一来,数据访问层中的任何改动都不会影响应用程序中的表示层和业务层。同时,使用这种分离方式,还可以让我们很简单的使用另一个不同的数据库和不同的代码来替代整个第二个物理层,只要和第 阅读全文

STL源码剖析之配置器(下)

2011-06-04 13:34 by Aga.J, 398 阅读, 0 推荐, 收藏, 编辑
摘要:11 因为考虑到内存碎片的情况,所以SGI采用【双层级配置器】,第一级配置器直接使用malloc和free。而第二级则: 当 申请区超过128 byte 时,调用一级配置器。当小于128时,采用复杂的memory pool(内存池),下面介绍SGI的方法(有其自己的空间分配等)#ifdef __USE_MALLOC…Typedef __malloc_alloc_template<0> malloc_alloc;Typedef malloc_alloc alloc; // 令alloc为第一级配置器#elseTypedef __default_alloc_template<__ 阅读全文

STL源码剖析之STL简介与STL配置器

2011-06-04 10:56 by Aga.J, 425 阅读, 0 推荐, 收藏, 编辑
摘要:1 从底层来看,STL带给我们一套具有实用价值的零部件,以及一个整合起来的整体,STL中组件之间耦合度很低,组件之间可以互相关联整合。2 STL以泛型思维,描述了很多抽象概念,以抽象概念为主体而不是依赖于实际的类3 STL六大组件: 容器 : 数据结构(容纳数据)是一种class template 算法 : 常用的算法,是一种function template 迭代器:容器和算法之间的胶合剂,也是一种泛型组件,“泛型指针”,每个容器都有自己的迭代器,只有容器自己才知道如何使用自己的迭代器来完成迭代。 仿函数:类静态函数 适配器:修饰容器或者仿函数或者迭代器接口的东西,也就是改变了被适配的东西, 阅读全文

又见作业

2011-06-01 10:05 by Aga.J, 383 阅读, 0 推荐, 收藏, 编辑
摘要:作业要求使用LoadRunner测试一个系统,所以选了jforum来测,下面是jforum的基本安装过程,做下笔记。Jforum安装详解1 搭建安装环境的基础设施 Jdk Tomcat MySql2 下载jornum http://www.jforum.net/index.jsp3 解压下载到的jforum-2.1.9.zip到你的tomcat的webapp下,并改名为jforum(可以改其他名字,记住这个路径就好)4 在MySql中建立数据库 jforum,然后从刚才解压出来的jforum-2.1.9文件(如果你已经重命名为jforum,那就是jforum里面找)按照这个路径查找\WEB-I 阅读全文

搜索引擎概要认识

2011-05-12 20:46 by Aga.J, 317 阅读, 0 推荐, 收藏, 编辑
摘要:1 搜索引擎是一种在Web上应用的软件系统,以一定的策略在Web上搜集和发现信息,在对信息进行处理和组织后,为用户提供Web信息查询服务。2 搜索引擎提供信息查询服务的时候,面对的只是查询词,但是每个用户关心的是和这个查询词相关的不同方面的信息,所以搜索引擎应该争取不要漏掉任何相关的信息,把用户最关系的信息排在搜索结果的列表最前。3 搜索引擎需要解决大规模并发的用户事件。4 搜索引擎实际上需要自己先对网络上的网页进行搜索爬取,存放到自己的数据库服务器中,当用户提交搜索请求时,搜索引擎从系统内部进行搜索,获取必要的信息,返回url列表,而用户这时候点击的url,访问的才是网页的原始出处。5 以w 阅读全文
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页