原创 C++11實現線程池

什麼是線程池 線程池(thread pool)是一種線程使用模式。線程過多或者頻繁創建和銷燬線程會帶來調度開銷,進而影響緩存局部性和整體性能。而線程池維護着多個線程,等待着管理器分配可併發執行的任務。這避免了在處理短時間任務時創建與銷

原创 C++11實現簡易定時器

定時器timer是多線程編程中經常設計到的工具類 定時器的原理其實很簡單: 創建一個新線程 在那個線程裏等待 等待指定時長後做任務 這裏用C++11實現了一個簡單易用的定時器,包含兩種模式: 週期性定時任務執行 單次延時任務執行

原创 C++執行shell命令

在linux系統下,用C++程序執行shell命令有多種方式 管道方式 #include <iostream> #include <unistd.h> #include <sys/types.h> int main() { FIL

原创 finarthur:開源C++量化金融框架(交易、數據、回測、研究分析、運維、可視化)

開發和維護了一個很fancy的FinTech項目,目前在不斷完善和優化中 github地址:https://github.com/tashaxing/finarthur finarthur finarthur是一個C++實現的輕

原创 C++加載動態鏈接庫(cmake生成,隱式鏈接,顯示鏈接)

C++程序在運行時有兩種方式加載動態連接庫:隱式鏈接和顯式鏈接。 加載動態庫文件就是將動態庫中的代碼邏輯映射到用戶進程地址空間,就在程序執行的時候進行函數調用。 隱式鏈接 隱式鏈接是在程序開始執行時就將動態庫文件加載到應用程序當中,需

原创 C++使用libcurl實現ftp客戶端(上傳、下載、進度、斷點續傳)

用libcurl C++庫寫了個ftp上傳限制的簡單示例,帶進度和斷點續傳功能 在此之前需要先搭建ftp服務器(windows自帶,linux可以用vsftpd) 以linux環境爲例,用cmake編譯出libcurl.so動態庫(靜

原创 Qt開發:列表QTableView列添加Button

在列表裏面添加任何其他組件,比如Button,一般都需要繼承delegate,然後繼承後重繪,但是這樣過於複雜,這裏有一個簡單的方法,理論上可以擴展到任何組件 以單個window裏面添加到表格爲例 代碼 mainwindow.h #i

原创 Qt開發:跨窗口信號槽通信

多窗口通信,如果是窗口類對象之間互相包含,則可以直接開放public接口調用,不過,很多情況下主窗口和子窗口之間要做到異步消息通信,就必須依賴到跨窗口的信號槽,以下是一個簡單的示例。 母窗口 mainwindow.h #ifndef

原创 C++實現utf8和gbk編碼字符串互相轉換

不同系統或者服務器之間消息傳遞經常遇到編碼轉換問題,這裏用C++實現了一個輕量的gbk和utf8互相轉換,可跨平臺使用。(重量級的可以用libiconv庫) 在windows下用<windows.h>頭文件裏的函數進行多字節和寬字符轉

原创 C++共享內存實現(windows和linux)

共享內存是一種進程間通信的方式,速度比較快 基本原理:以頁面爲單位,將一個普通文件映射到內存中,達到共享內存和節約內存的目的,通常在需要對文件進行頻繁讀寫時使用,這樣用內存讀寫取代I/O讀寫,以獲得較高的性能 windows和linux都

原创 TA-Lib C++金融技術分析庫使用初體驗

TA-Lib是一個用於金融技術分析的C++庫,可以用來計算MACD,動量,移動均線等常用指標等 本文對TA-Lib做了一個簡單的使用初體驗 源碼下載 地址:ta-lib 注意這裏面有多個源碼包,選擇msvc這個版本(windows和l

原创 C++資源大全

【原文】https://github.com/fffaraz/awesome-cpp老外的Github上面是最新版,筆者這裏補充了自己知道的一些工具庫關於 C++ 框架、庫和資源的一些彙總列表,由 fffaraz發起和維護。內容包括:標準

原创 mxnet使用mxboard實現網絡和訓練過程可視化

mxnet作爲一個強大的機器學習工具,一直缺乏像tensorflow一樣的可視化工具,dmlc社區最近將tensorflow的tensorboard部分代碼抽出來做成了一個適配mxnet的記錄工具mxboard,使得mxnet裏面打印出來

原创 cocos2dx實例開發之flappybird(入門版)

cocos2dx社區裏有個系列博客完整地複製原版flappybird的所有特性,不過那個代碼寫得比較複雜,新手學習起來有點捉摸不透,這裏我寫了個簡單的版本。演示如下: 創建項目 VS2013+cocos2dx 3.2創建win32項目

原创 windows下編譯mxnet並使用C++訓練模型

大多數情況下,mxnet都使用python接口進行機器學習程序的編寫,方便快捷,但是有的時候,需要把機器學習訓練和識別的程序部署到生產版的程序中去,比如遊戲或者雲服務,此時採用C++等高級語言去編寫才能提高性能,本文介紹瞭如何在windo