原创 目錄的枚舉非遞歸實現
目錄的枚舉經常用到,但是大家大多數用遞歸就能解決問題,但是在某些環境,內存受到限制情況下,遞歸就回佔用大量內存,導致程序崩潰,那麼這個時候怎麼辦? 使用非遞歸!把遞歸轉爲非遞歸 目錄的遞歸訪問轉爲非遞歸訪問.以windows 爲
原创 實現日誌類
1 實現c++ 類似 cout 類 2 就要實現 operator << 3 在最後的一個 << 輸出 4 輸出到文件 5 整個文件使用一個文件輸出 6 支持寬字符,ANSI , 整型,如果自己想可以擴展自己的類型。 // log
原创 nim 生成動態庫(dll)
nim 編寫dll nim 的dll,手冊中說先編譯生成 nimrtl.dll 然後其他的dll依賴此dll產生一個新的dll,我們先拋開這個支持G
原创 nim IDE aporia的編譯
1 從nim-lang.org 可以進入 aporia 的github.com上的站點 https://github.com/nim-lang/aporia,下載aporia 代碼 2 nim依賴gtk2和cairo這兩個包
原创 告別printf 擁抱 std::cout
我們使用printf 的時候或者自己構造的printf,有的時候會有這樣的煩惱,輸出很容易出錯,如果 int 類型對應 %s 那麼必然要崩潰。爲了解決問題結果打log崩潰,是令人很惱火的事。 c++ 的輸出或者日誌輸出 std::
原创 八皇后問題三種實現
八皇后問題三種實現 八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,
原创 實現ubuntu nautilus文件管理器插件
在mint linux 下 下載nautilus 文件管理器 使用新立得軟件包管理器下載libnautilus-extension-dev 或 apt 下載 下載完的頭文件在/usr/include/nautilus 下
原创 編譯nautilus文件管理器
因爲要寫文件管理器插件來處理右鍵菜單,文件屬性等,所以選擇了Ubuntu的nautilus文件管理器。在Linux下只有到了最後通過你才能知道需要什麼依賴。 本文在mint-linux 19 中文版 Linux bkdrong-
原创 用nim寫的音樂播放程序
記得在DOS時代編程使用Turbo C ,在圖書館遇到了樂譜播放程序,於是用C寫了播放音樂的小程序。 現在回憶一下很有意思的事,如果沒有那麼有意思的事可做,編程是很無聊的事。 現在我們學習Nim語言,編寫一個類似的
原创 用nim寫一個簡單的windows程序
編譯:nim c --app:gui hello.nim 後者有控制檯的: nim c hello.nim 關於使用vs 作爲nim生成C代碼的編譯器,上篇博客中說過。 nim 和 C太像了,感覺就像C的語法糖。 下面看代碼: i
原创 有窮自動機實現拆分字符串爲vector
拆分字符串爲vector 字符串分割,在網上看到幾種方法https://www.jb51.net/article/55954.htm 1 使用strtok分割 //藉助strtok實現split #include <string.
原创 爬小說
問題: 看小說有很多廣告,使用迅雷下載,如果文件名稱沒有規律的話,下載效率很低,因爲猜不到文件名規律。於是就想每一章都有下一章,因此可以根據"下一章" 找到 href 然後下載下一章,如果"下一章"已經下載則說明循環了,要停止。下
原创 windows 實現一個簡單的自繪邊框,具有最大化,最小化,icon,標題
實現一個簡單的自繪邊框,具有最大化,最小化,icon,標題. 當用戶嫌windows的框架顏色不好看,要修改窗口的框架,就自己在win32上實現它,因爲內容是使用cef框架實現,使用duilib 等界面庫和cef的demo代碼兼容
原创 製造format_string helper函數
製造兩個helper函數 當我們要跨平臺的時候CString 等都不能用了,這個時候需要一些順手的工具 下面兩個函數是格式化字符串,返回string和wstring std::string format_string(const
原创 在 typescript 使用命名空間
ex1.ts namespace mylib { exports function fibo(x:int):int { if(x==1||x==2) { re