原创 c++ visitor 設計模式

關於訪問者模式,語言表達總是太繞,不如一個具體的實現: #include<iostream> #include<string> #include<chrono> #include<vector> using std::cout;

原创 stl-thread-003

以package線程包,封裝函數的方式,使一個函數通常(但不一定)運行於某一分離線程中: #include<thread> #include<future> #include<iostream> using std::cout;

原创 stl-thread-001

介紹c++11引入的標準線程類thread,屬於入門系列。 這是第一篇,轉自c++標準庫:開2個子線程運行,並取得結果; #include<future> #include<thread> #include<iostream>

原创 c++ FlyWeight 設計模式

個人覺得:一個單例模式的工廠,永遠只維護一個類的實例,誰要訪問實例,工廠就返回這個實例,不會有副本。FlyWeight模式類似,一堆實例工廠,其中,每個實例都是獨一無二的,且沒有副本(因此隱含了工廠來管理對象的生命週期)。 參

原创 c++ 責任鏈 設計模式

可以看作GUI框架處理事件的原型,例如點擊按鈕事件,button(window),先處理;如果事件沒有得到處理,再上溯給父panel(window)去處理;如果事件沒有得到處理,再上溯給父frame(window)去處理;如果事件

原创 介紹一個類型安全的回調庫:libsigc++

類似於QT的信號與槽,可以一對一的綁定,也可以一對多多的綁定,很方便: 最初是在GTKMM官網發現的,使用c++語言,windows下也可以使用。 http://www.gtkmm.org/en/download.html 下

原创 c++插入排序

直接插入排序: #ifdef WIN32 #define _CRT_SECURE_NO_WARNINGS #endif // WIN32 #include<iostream> using namespace std; int m

原创 stl-thread-002

第一篇講的是高級線程函數async(); 第二篇,這篇講低級線程函數thread(),和它的promise-結果收集器。 #include<iostream> #include<thread> #include<future>

原创 自定義visual studio的通用debug函數

這篇文章擴展以前的 http://blog.csdn.net/u012442719/article/details/50827771 在unicode模式下,如何同時接受寬字符和窄字符,並且接受不同變量的debug輸出: #in

原创 002 ZeroMQ PUB and SUB

定義框架: 實現: 服務端wuserver.cpp #include<zmq.h> #include<thread> #include<chrono> #include<iostream> using std::endl;

原创 005 ZeroMQ REQ--REQ 路由模式

框架: 代碼放在最後。 實踐,爲了便於理解,沒有使用多線程,tcp取代ipc通信,只加入了一個客戶端和一個工人: 消息路由原理: client.cpp #include<zmq.h> #include<iostrea

原创 wxListCtrl簡單使用

核心代碼: Simple::Simple(const wxString& title) :wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(450,400)) {

原创 Qt網絡與通信-UDP

實現UDP通信: 1,客戶端只要聲明一個QUdpSocket的實例,便開可開始發送數據。 類似: udpSock->writeDatagram(msg.toLatin1(),msg.length(),QHostAddress

原创 005 ZeroMQ REQ--REP代理應答與請求

框架: 優點是,如果客戶端是同型的,服務端也是同型的,都可以動態加入或退出。 但消息只實現一半路由,要完全路由,參考上一篇文章。 內部消息傳遞原理: 實現代碼: client.cpp: #include<zmq.h

原创 004 ZeroMQ 模式

這篇文章是第2篇的擴展 框架: 提供中間代碼(XSUB-proxy-XSUB)。前、後端的代碼可以參考第2篇文章,只是連接方式改成了connect而不是bind,所有要bind的endpoint都在中間代理中。 #inclu