<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hebezai的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hebezai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hebezai]]></copyright><item><title><![CDATA[模板应用--UI线程与worker线程同步 模仿c# invoke]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/10386691</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/10386691</guid><author>hebezai</author><pubDate>Tue, 27 Aug 2013 13:23:17 +0800</pubDate><description><![CDATA[通过模仿invoke达到UI线程与worker线程同步]]></description><category></category></item><item><title><![CDATA[UI线程与worker线程]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/10383323</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/10383323</guid><author>hebezai</author><pubDate>Tue, 27 Aug 2013 11:51:52 +0800</pubDate><description><![CDATA[UI线程、worker线程的一些看法]]></description><category></category></item><item><title><![CDATA[模板应用--观察者模式]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/10378051</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/10378051</guid><author>hebezai</author><pubDate>Tue, 27 Aug 2013 10:40:23 +0800</pubDate><description><![CDATA[c++模板实现的线程安全观察者模式，支持观察多个对象，观察者与Subject之间无耦]]></description><category></category></item><item><title><![CDATA[模板应用--线程安全且lazy initialization的单例模式]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/10241735</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/10241735</guid><author>hebezai</author><pubDate>Fri, 23 Aug 2013 23:06:10 +0800</pubDate><description><![CDATA[C++模板应用之----通过模板的特性实现单例模式]]></description><category></category></item><item><title><![CDATA[重新开始]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/10241539</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/10241539</guid><author>hebezai</author><pubDate>Fri, 23 Aug 2013 21:38:03 +0800</pubDate><description><![CDATA[2013年8月某日，偶发心血来潮，翻开优快云 blog主页，发现上一篇博是2009年3月份写的，竟已隔4年多之久，实在是懒，懒得无可救药。
当初开博本是想记录自己的技术学习过程，希望回过头看时能发现其中的不足。理想很丰满，现实很骨感，没多久就夭折了。
必须得承认，自己是没有恒心的人。总是给自己随便找个理由，而不敢正视自己。
今后重新开始，自勉。。。]]></description><category></category></item><item><title><![CDATA[为C++添加短字符串的switch-case支持]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/9886213</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/9886213</guid><author>hebezai</author><pubDate>Sat, 10 Aug 2013 23:58:07 +0800</pubDate><description><![CDATA[介绍
这篇文章描述了一种在C++中对短字符串（长度为4以内）进行switch-case操作的尝试，如同整型值那样，以此避免因字符串匹配带来的开销，稍微提高运行效率。
背景
如大家所知，C++并不支持对字符串（单字符还是支持的）做switch case的分支操作，因为switch的表达式只支持整型值或可转化为整型值的类型。既然switch case不能用了，那可选的方案就只剩下if-else、]]></description><category></category></item><item><title><![CDATA[C++的memset误用]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3946344</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3946344</guid><author>hebezai</author><pubDate>Sun, 01 Mar 2009 01:44:00 +0800</pubDate><description><![CDATA[ 　　为了写一个高精度计算代码，用memset库函数初始化传入数组(short)，调的过程中老发现数组没有完全按我的方式初始化，这种情况总是出现在数组的末端几个元素，其实不是末端，是后半部分才对，估计这个函数是按照每个字节来按位set的，而且，总共设置的字节数为函数的第三个参数，试验之下果然是。　　对比下：      int arr[4];      memset(arr, 0, size]]></description><category></category></item><item><title><![CDATA[STL中排序算法函数所用技巧]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3914702</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3914702</guid><author>hebezai</author><pubDate>Fri, 20 Feb 2009 15:37:00 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[从partial_sort挖掘堆排序]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3910342</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3910342</guid><author>hebezai</author><pubDate>Thu, 19 Feb 2009 15:18:00 +0800</pubDate><description><![CDATA[ 　　用过多次STL中的partial_sort算法，却全然不知其实现原理，也没跟进STL源码中去深究。某天在电话面试的时候被问到它的实现原理，没能答出来，实在惭愧。阅读partial_sort源代码以后，有种似曾相识的感觉，哦～～原来是堆排序。以前只在书本上了解过堆排序，没去认真了解和实现过，着实不知道它的妙处所在，如今灾难降临，给自己敲响警钟。　　堆排序：　　关键字序列k[1...n]]]></description><category></category></item><item><title><![CDATA[取map容器的前10大(根据每一个value排序)元素]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3906079</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3906079</guid><author>hebezai</author><pubDate>Wed, 18 Feb 2009 15:45:00 +0800</pubDate><description><![CDATA[ XX公司的笔试题：　　给定一个仅包含英文字母和空格的字符串，请实现一个函数找出该字符串中出现次数最多的10个字母（不区分大小写）。      当时的解答是：#include #include #include #include using namespace std;bool compare_map(const pair &p1, const pair &p2){     r]]></description><category></category></item><item><title><![CDATA[虚函数表指针的位置]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3905631</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3905631</guid><author>hebezai</author><pubDate>Wed, 18 Feb 2009 14:21:00 +0800</pubDate><description><![CDATA[ 　　XX软件公司的笔试题：　　C++标准中，虚表指针在类的内存结构位置没有规定，不同编译器的实现可能是不一样的。请实现一段代码，判断当前编译器把虚表指针放在类的内存结构的最前面还是最后面。　　当时的解答是：#include using namespace std;typedef unsigned (*Fun)(void); class Base{public:    Ba]]></description><category></category></item><item><title><![CDATA[基类虚析构函数分析]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3820417</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3820417</guid><author>hebezai</author><pubDate>Sun, 18 Jan 2009 00:35:00 +0800</pubDate><description><![CDATA[　　多态是由虚函数表来实现，通过父类指针来实现动态绑定。子类重写父类的虚函数后，覆盖虚函数表中父类该虚函数在表中原来的位置，也许“覆盖”也就是由此得称。  　　那析构函数是否也如此呢？程序代码中经常可以见到将基类的析构函数写成虚函数，目的就是为了防止由以下这种情况造成的内存泄漏：       class A;      class B : public A{};      ....]]></description><category></category></item><item><title><![CDATA[sql语句效率S&Q]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3815613</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3815613</guid><author>hebezai</author><pubDate>Sat, 17 Jan 2009 17:43:00 +0800</pubDate><description><![CDATA[ 问：(1)一次插入多条数据时:CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))INSERT tb   SELECT 1,DDD,1UNION  ALL        SELECT 1,5100,DUNION  ALL        SELECT 1,5200,E 也可以这样:]]></description><category></category></item><item><title><![CDATA[VS2005常用快捷键]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3815587</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3815587</guid><author>hebezai</author><pubDate>Sat, 17 Jan 2009 17:40:00 +0800</pubDate><description><![CDATA[解决方案资源管理器　　　　　　    ctrl + alt + L创建书签                                         ctrl + k上一书签                                         shift + F2下一书签                                         F2全局查找        ]]></description><category></category></item><item><title><![CDATA[进程间获取句柄或ID所用到的]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3815228</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3815228</guid><author>hebezai</author><pubDate>Sat, 17 Jan 2009 17:15:00 +0800</pubDate><description><![CDATA[ 1.根据窗口ID，获得创建该窗口的线程ID和进程IDThe GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created th]]></description><category></category></item><item><title><![CDATA[访问一个进程的内存空间]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3813443</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3813443</guid><author>hebezai</author><pubDate>Sat, 17 Jan 2009 16:11:00 +0800</pubDate><description><![CDATA[      在WIN32中，每个应用程序都可“看见”4GB的线性地址空间，其中最开始的4MB和最后的2GB由操作系统保留，剩下不足2GB的空间用于应用程序私有空间。具体分配如下：0xFFFFFFFF-0xC0000000的1GB用于VxD、存储器管理和文件系统；0xBFFFFFFF-0x80000000的1GB用于共享的WIN32 DLL、存储器映射文件和共享存储区；0x7FFFFFFF-0x00]]></description><category></category></item><item><title><![CDATA[HOW TO： 编写在 Windows XP 中支持快速用户切换的应用程序]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3531580</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3531580</guid><author>hebezai</author><pubDate>Tue, 16 Dec 2008 16:07:00 +0800</pubDate><description><![CDATA[http://support.microsoft.com/kb/310153/zh-cn]]></description><category></category></item><item><title><![CDATA[windows多线程所涉及基本概念]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3531337</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3531337</guid><author>hebezai</author><pubDate>Tue, 16 Dec 2008 15:49:00 +0800</pubDate><description><![CDATA[Windows多线程所涉及基本概念 关键字：多线程 线程同步 线程池 内核对象转帖自：http://blog.youkuaiyun.com/shengao/archive/2005/07/17/427590.aspx1 内核对象1 .1内核对象的概念内核对象是内核分配的一个内存块，这种内存块是一个数据结构，表示内核对象的各种特征。并且只能由内核来访问。应用程序若需要访问内核对象，需]]></description><category></category></item><item><title><![CDATA[跨线程调用MFC成员函数]]></title><link>https://blog.youkuaiyun.com/hebezai/article/details/3529736</link><guid>https://blog.youkuaiyun.com/hebezai/article/details/3529736</guid><author>hebezai</author><pubDate>Tue, 16 Dec 2008 12:28:00 +0800</pubDate><description><![CDATA[　　通常由MFC创建的窗口程序（如简单的对话框程序），程序主窗口的资源句柄和MFC类实例之间的对应关系被记录在了AFX_MODULE_THREAD_STATE结构的map中（属于主线程），在其他线程如主线程创建的工作者线程，通过主线程创建的MFC类对象调用关联到资源句柄的类方法时，通常都会使得程序异常．例如，传入一个指向主线程创建的CWnd类对象的指针给线程函数，在线程函数里通过该指针调用CWnd]]></description><category></category></item></channel></rss>