原创 Makefile編譯

1.多目錄編譯 SUBDIRS=HdvonBase HdFramework HdThread RECURSIVE_MAKE=@for subdir in $(SUBDIRS);do \ echo "making in $$subd

原创 libuv封裝cond

#ifndef __CUVCOND__H_ #define __CUVCOND__H_ #include "UvMutex.h" class CUvCond { public: CUvCond(); ~CUvCond()

原创 直擊面試之鏈表

面試過程中經常會遇到鏈表相關面試,鏈表相較於數組區別是節點存儲空間不連續,可持續擴展。下面是使用Go進行鏈表實現。 鏈表結構定義 //define the data struct type LinkList struct { pPre

原创 GO實現文件壓縮算法

實現原理    讀取文件,統計字符出現次數爲權值,構建哈夫曼樹,獲取每個字符的哈夫曼編碼,寫入文件。   壓縮文件頭定義 type compressHead struct { srclen, dstlen, keymapLen uin

原创 哈夫曼樹構建

哈夫曼樹是帶權值的樹節點結構,且目標節點都存儲在葉子節點上。下面使用Go實現哈夫曼樹 哈弗曼樹構建過程 將帶權值的節點進行排序,形成有序的鏈表。 取出鏈表頭兩個節點,權值相加形成新節點,並加入上述鏈表中重新排序,兩節點分別爲構建爲左右子樹

原创 直擊面試之二叉樹

面試過程中經常會問到二叉樹相關的問題,下面使用Go整理下二叉樹相關問題的代碼實現 樹的定義 //define the data struct type BinaryTree struct { pLeft *BinaryTree //

原创 直擊面試之KMP字符串查找

面試時碰到一個算法題,判斷一個字符串是不是一段字符的子串,當時不加思索的就寫出兩段for循環,僞代碼如下 #src爲源串 pat爲子串 i=0 while(i<len(src) && len(src) >== i + len(pat

原创 隱藏桌面圖標通過命令行啓動

1.創建快捷鍵存放的目錄,我創建的目錄是D:/cmdtool,並將需要啓動的程序快捷鍵發送到該目錄下 2.將上面創建的目錄添加到系統環境變量的PATH中 3.啓動cmd,輸入qq回擊

原创 libuv封裝rwlock

#ifndef __CUVRWLOCK__H_ #define __CUVRWLOCK__H_ #include "uv.h" class CUvRwLock { public: CUvRwLock(); ~CUvRwL

原创 libuv封裝barrier

#ifndef __CUVBARRIER__H_ #define __CUVBARRIER__H_ #include "uv.h" class CUvBarrier{ public: CUvBarrier(); ~CUv

原创 win下生成core文件

#ifndef __CCOREMGR__H_ #define __CCOREMGR__H_ #include "singleton.h" #include "CLogmanager.h" #if defined(WIN32) || d

原创 事件監聽器

#ifndef __CEVENTMGR__H_ #define __CEVENTMGR__H_ #include "singleton.h" #include "CMutex.h" #include "CLogmanager.h" #i

原创 c/c++創建動態導出庫模版

#ifndef __EXPORT__H_ #define __EXPORT__H_ #if defined WIN32 || defined _WIN32 #if defined DLL_EXPORT #define EXPORTAP

原创 Linux下設置coredump腳本

linux下調試程序崩潰一般都有coredump生成,可以設置coredump生成路徑 #!/bin/sh sed -i '/# End of file/i\*                soft    core          

原创 libuv封裝任務線程池

Task.h #ifndef __CTASK__H_ #define __CTASK__H_ #include "RcObject.h" class CTask: public CRcObject { public: virtu