C++
文章平均质量分 77
小菜专栏
天下难事必作于易天下大事必作与细
展开
-
智能指针的死穴 -- 循环引用
C++最新标准C++11中已将基于引用计数的智能指针share_prt收入囊中,智能指针的使用门槛越来越低,不需要使用boost库,我们也能轻松享受智能指针给我们带来的方便。 智能指针,正如它的名字一样,似乎是个近乎完美的聪明角色,程序员不用再纠结于new出来的内存在哪释放比较合适这种问题。比如当一个资源被多个模块共享时,程序员需要在所有模块的生命周期都结束时,由最后一个不使用该指针的模块触发指转载 2013-10-05 13:44:46 · 828 阅读 · 0 评论 -
C++的函数重载
C++的函数重载 ——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘 写在前面: 函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题 1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还转载 2013-09-19 11:40:25 · 539 阅读 · 0 评论 -
标准库string原理与实现
设计一个完美的String是不可能的,但是无论如何,这个strin原创 2013-09-19 14:48:38 · 684 阅读 · 0 评论 -
C++ 对象模型---构造函数篇
通常很多C++程序员存在两种误解: 没有定义默认构造函数的类都会被编译器生成一个默认构造函数。编译器生成的默认构造函数会明确初始化类中每一个数据成员。 C++标准规定:如果类的设计者并未为类定义任何构造函数,那么会有一个默认 构造函数被暗中生成,而这个暗中生成的默认构造函数通常是不做什么事的(无用的),下面四种情况除外。 换句话说,有以下四种情况编译器必须为未声明构造函数的类生成转载 2013-10-07 13:48:23 · 640 阅读 · 0 评论 -
二叉查找树
注:所有题目的代码为参照v_JULY_v或者自己缩写,而解答中的分析为自己所想。 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / / 4 8 12 16 转换成双向链表 4=6=8=10=原创 2013-10-21 21:08:32 · 608 阅读 · 0 评论