摘要: 针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板这里用一个简单的例子来说明这三种情况:templateclass compare{public: static boolIsEqual(constT&lh,constT&rh) { ... 阅读全文
posted @ 2015-03-18 10:18 极限游乐园 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当 aconst int maxn = 1000;typedef struct rectangle{ int len; int wid;};int Matrix[maxn][maxn]... 阅读全文
posted @ 2014-11-18 22:33 极限游乐园 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 普通递归算法:int NumberTrangle(int trang[][100], int i, int j, int numOfLine) //numOfLine即三角形的高度{ if(i == numOfLine) return trang[i][j]; 最低层的不用计算。 el... 阅读全文
posted @ 2014-11-18 20:10 极限游乐园 阅读(441) 评论(0) 推荐(0) 编辑
摘要: C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的... 阅读全文
posted @ 2014-08-18 12:00 极限游乐园 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 模板:类模板和函数模板。 一、模板实参推断: 定义:从函数实参确定模板实参的类型和值的过程叫做模板实参推断。 1、多个类型形参的实参必须完全匹配。 template int compare (const T& v1, const T& v2) { if(v1 int compare(const A& vi, const B& v2)。。。 2、类型形参的实参的受限转换。 一般不会转换实参以匹配已有的实例化,会产生新的实例。 编译器只会接受两种转换: const转换:接受const引用或const指针的函... 阅读全文
posted @ 2013-08-25 23:23 极限游乐园 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 引用计数的实现:template class ReferenceCount{public: explicit ReferenceCount(T* p):ptr(p),count(new int(1)){} ReferenceCount(const ReferenceCount& p) throw() : ptr(p.ptr),count(p.count) { ++*count; } ReferenceCount& operator = (const ReferenceCount& p) { if(this != &p) { dispose(); ... 阅读全文
posted @ 2013-07-27 14:19 极限游乐园 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Map中根据元素的key自动对元素进行排序。这样一来,根据已知的key搜寻某个元素时,能够获得很好的性能,而根据已知的value搜寻元素时,性能就很糟糕。自动排序,使得map中不可以直接改变元素的key的值,要改变元素的key,必须先移除拥有该key的元素。 map的生成、复制 map c; 产生一个空的map,不含任何元素。 map c(op) 以op为排序准则,产生一个空的map。 map c1(c2) 产生一个map的副本,所有元素均被复制。 map c(beg,end) 以区间[beg,end]内的元素产生一个map... 阅读全文
posted @ 2013-07-10 22:48 极限游乐园 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 1、对象以值传递的方式传入函数参数2、对象以值传递的方式从函数返回3、对象需要通过另外一个对象进行初始化 拷贝构造函数原型,假设类名为Foo,则copy constructor为: Foo( const Foo &obj); 限定符必须是const,且必须是引用。 阅读全文
posted @ 2013-07-05 13:31 极限游乐园 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 哈哈,毕业两周年。。出身电子信息工程的我不搞硬件,居然做起了纯软件,事实是做了两年软件。c++出身的我,需要投入java的怀抱,一切为了hdfs+hbase,也为了今后的方向------大数据、云。其实2014年已经中旬已经投入java,实际上现在的我也已经把hdfs的源码吃了60%。但是为了更好的... 阅读全文
posted @ 2013-07-04 23:24 极限游乐园 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 所有容器都会建立元素副本,并返回该副本,这意味着容器内的元素与你放进去的对象“相等”但非“同一个”。 STL容器元素必须满足的三个基本要求:1、必须可通过复制构造函数进行复制。 顺序容器的元素初始化都是通过复制初始化,所以不能复制的对象是不能存到容器中的,例如io对象。 既然是复制,那么一个对象放入容器中时必定要调用复制构造函数。2、必须可通过赋值操作符完成赋值动作。 容器和算法都使用赋值操作符,才能以新元素取代旧元素。3、必须可通过析构函数完成销毁动作 当容器元素被remove,它在容器内的副本将被销毁,因此析构函数绝不能设计为private。另:I、对序列式容器来说,元素的d... 阅读全文
posted @ 2013-07-04 23:16 极限游乐园 阅读(280) 评论(0) 推荐(0) 编辑