07 2013 档案

引用计数
摘要:引用计数的实现: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 极限游乐园 阅读(202) 评论(0) 推荐(0)

容器6:MAP
摘要: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 极限游乐园 阅读(247) 评论(0) 推荐(0)

调用复制构造函数的时机
摘要:1、对象以值传递的方式传入函数参数2、对象以值传递的方式从函数返回3、对象需要通过另外一个对象进行初始化 拷贝构造函数原型,假设类名为Foo,则copy constructor为: Foo( const Foo &obj); 限定符必须是const,且必须是引用。 阅读全文

posted @ 2013-07-05 13:31 极限游乐园 阅读(154) 评论(0) 推荐(0)

2015年下半年计划
摘要:哈哈,毕业两周年。。出身电子信息工程的我不搞硬件,居然做起了纯软件,事实是做了两年软件。c++出身的我,需要投入java的怀抱,一切为了hdfs+hbase,也为了今后的方向------大数据、云。其实2014年已经中旬已经投入java,实际上现在的我也已经把hdfs的源码吃了60%。但是为了更好的... 阅读全文

posted @ 2013-07-04 23:24 极限游乐园 阅读(132) 评论(0) 推荐(0)

C++容器内的元素
摘要:所有容器都会建立元素副本,并返回该副本,这意味着容器内的元素与你放进去的对象“相等”但非“同一个”。 STL容器元素必须满足的三个基本要求:1、必须可通过复制构造函数进行复制。 顺序容器的元素初始化都是通过复制初始化,所以不能复制的对象是不能存到容器中的,例如io对象。 既然是复制,那么一个对象放入容器中时必定要调用复制构造函数。2、必须可通过赋值操作符完成赋值动作。 容器和算法都使用赋值操作符,才能以新元素取代旧元素。3、必须可通过析构函数完成销毁动作 当容器元素被remove,它在容器内的副本将被销毁,因此析构函数绝不能设计为private。另:I、对序列式容器来说,元素的d... 阅读全文

posted @ 2013-07-04 23:16 极限游乐园 阅读(291) 评论(0) 推荐(0)

迭代器 配接器
摘要:1、Insert iterators 安插型迭代器 可使算法以安插方式而非覆写方式运作。可以解决算法的“目标空间不足”的问题。 安插型迭代器又有三类: I、Back inserters 安插于容器尾端 内部调用push_back,在尾端插入元素。可用的容器有三种:vector、deque、list。back_inserter(container) II、Front inserters 安插与容器前端 内部调用push_front,将元素安插于容器前端,这种动作逆转了被安插元素的次序。可用的容器deque和list。front_inserter(cont... 阅读全文

posted @ 2013-07-03 22:21 极限游乐园 阅读(160) 评论(0) 推荐(0)