C++/STL
文章平均质量分 62
hebezai
想腾飞才发现翅膀还不够硬
展开
-
基类虚析构函数分析
多态是由虚函数表来实现,通过父类指针来实现动态绑定。子类重写父类的虚函数后,覆盖虚函数表中父类该虚函数在表中原来的位置,也许“覆盖”也就是由此得称。 那析构函数是否也如此呢?程序代码中经常可以见到将基类的析构函数写成虚函数,目的就是为了防止由以下这种情况造成的内存泄漏: class A; class B : public A{}; ....原创 2009-01-18 00:35:00 · 2300 阅读 · 0 评论 -
模板应用--UI线程与worker线程同步 模仿c# invoke
通过模仿invoke达到UI线程与worker线程同步原创 2013-08-27 13:23:17 · 1165 阅读 · 0 评论 -
模板应用--观察者模式
c++模板实现的线程安全观察者模式,支持观察多个对象,观察者与Subject之间无耦原创 2013-08-27 10:40:23 · 2410 阅读 · 0 评论 -
为C++添加短字符串的switch-case支持
介绍 这篇文章描述了一种在C++中对短字符串(长度为4以内)进行switch-case操作的尝试,如同整型值那样,以此避免因字符串匹配带来的开销,稍微提高运行效率。 背景 如大家所知,C++并不支持对字符串(单字符还是支持的)做switch case的分支操作,因为switch的表达式只支持整型值或可转化为整型值的类型。既然switch case不能用了,那可选的方案就只剩下if-else、原创 2013-08-10 23:58:07 · 6250 阅读 · 0 评论 -
C++的memset误用
为了写一个高精度计算代码,用memset库函数初始化传入数组(short),调的过程中老发现数组没有完全按我的方式初始化,这种情况总是出现在数组的末端几个元素,其实不是末端,是后半部分才对,估计这个函数是按照每个字节来按位set的,而且,总共设置的字节数为函数的第三个参数,试验之下果然是。 对比下: int arr[4]; memset(arr, 0, size原创 2009-03-01 01:44:00 · 720 阅读 · 0 评论 -
虚函数表指针的位置
XX软件公司的笔试题: C++标准中,虚表指针在类的内存结构位置没有规定,不同编译器的实现可能是不一样的。请实现一段代码,判断当前编译器把虚表指针放在类的内存结构的最前面还是最后面。 当时的解答是:#include using namespace std;typedef unsigned (*Fun)(void); class Base{public: Ba原创 2009-02-18 14:21:00 · 4247 阅读 · 2 评论 -
STL中排序算法函数所用技巧
1.向后拷贝操作。将区间[_Front, _Tail]内容拷贝到_X,其中,_Tail的值对应_X。template inline _BI2 copy_backward(_BI1 _Front, _BI1 _Tail, _BI2 _X) {while (_Tail != _Front) *--_X = *--_Tail; return (_X); } 2.以值_Piv为枢轴,将区间[_F原创 2009-02-20 15:37:00 · 522 阅读 · 0 评论 -
从partial_sort挖掘堆排序
用过多次STL中的partial_sort算法,却全然不知其实现原理,也没跟进STL源码中去深究。某天在电话面试的时候被问到它的实现原理,没能答出来,实在惭愧。阅读partial_sort源代码以后,有种似曾相识的感觉,哦~~原来是堆排序。以前只在书本上了解过堆排序,没去认真了解和实现过,着实不知道它的妙处所在,如今灾难降临,给自己敲响警钟。 堆排序: 关键字序列k[1...n]原创 2009-02-19 15:18:00 · 1286 阅读 · 0 评论 -
取map容器的前10大(根据每一个value排序)元素
XX公司的笔试题: 给定一个仅包含英文字母和空格的字符串,请实现一个函数找出该字符串中出现次数最多的10个字母(不区分大小写)。 当时的解答是:#include #include #include #include using namespace std;bool compare_map(const pair &p1, const pair &p2){ r原创 2009-02-18 15:45:00 · 6450 阅读 · 0 评论 -
模板应用--线程安全且lazy initialization的单例模式
C++模板应用之----通过模板的特性实现单例模式原创 2013-08-23 23:06:10 · 2404 阅读 · 2 评论