原创 歸併排序之python實現

  將兩個有序數列合併成一個有序數列,此過長叫做歸併排序。對一個序列通過歸併算法進行排序時,可先講此序列拆分成多個兩兩一組的序列,然後歸併。本文主要描述歸併過程,並假設按照遞增進行排序。   歸併過程並不複雜,過程可描述爲。根據條件遞增遍

原创 設計模式之代理模式 C++實現

    代理模式實現起來比較簡單。簡單描述就是,隱藏真正實現的功能,而採用一個代理類來進行對隱藏部分的訪問。客戶只操作代理類。代理模式從一定程度上降低了系統的耦合性。     代理模式應用有集中情況     一,遠程代理。爲一個對象在不同

原创 設計模式之裝飾模式 C++實現

    有時候我們需要在某個類已有的功能中添加新的功能。此時我們可以用繼承的方式來給類添加功能。我們也可以用裝飾模式來實現。     裝飾模式,動態的給一個對象添加功能。與繼承的方式相比,它更有靈活性。     裝飾模式實現思路是。在原有

原创 設計模式之工廠方法模式 C++實現

    前文介紹了簡單工廠模式,用起來很簡單。但是如果要增加其他運算那麼簡單工廠模式就需要修改現有代碼。這違背了開放-封閉原則(對擴展開放,對修改封閉)。工廠方法模式彌補了這種缺點。工廠方法模式,讓子類決定實例化哪一個類。UML圖如下;不

原创 設計模式之單例模式 C++實現

單例模式是應用很廣泛的一種設計模式,當需要某個類在整個工程中只有一個實例的時候,就需要用到單例模式了。實現思路也不難。首先,將構造函數設置爲私有(private)權限,這樣就不允許外部創建實例了。然後,內部創建一個實例,再通過一個接口的g

原创 設計模式之簡單工廠模式 C++實現

    個人認爲簡單工廠模式是最簡單的一種設計模式,同時也是應用最廣泛的一種設計模式。設計思路是用戶根據條件篩選生成哪種產品,然後將條件傳遞給factory,由Factory生成具體產品(本文爲具體運算)。    UML如圖代碼實現:運算

原创 QT 使用QWebEngineView 加載瀏覽器頁面

有時候項目需要嵌入一些網頁操作,Qt 爲我們提供了方便的類來做這個操作,這就是 QWebEngineView 類。可用此很簡單的實現嵌入網頁頁面功能。 簡單Demo如下。 用Qt自帶 QtCreator 在 .pro文件中加入  QT

原创 Qwt QwtPlotZoomer放大還原後橫座標變換解決

    最近使用QWT做一個畫波形的項目,由於需要用時間做橫軸所以在設置標尺的時候需要這樣 this->setAxisScale(QwtPlot::xBottom, 0.0, 3600.0,600); 這會有一個問題就是當添加 Qwt

原创 socket程包含頭文件問題

今天發現一個奇怪的現象  socket編程的時候包含頭文件的時候 winsocket2.h 和 windows.h這兩個頭文件的包含順序是不能隨便的  例如#include <winsock2.h> #include<Windows.h>

原创 設計模式之抽象工廠模式 C++實現

    前面兩篇文章分別介紹了,簡單工廠模式以及工廠方法模式。接下來我將介紹一下,抽象工廠模式。抽象工廠模式主要用於具有複雜層級和分類的設計中。比如,分別把網卡驅動和聲卡驅動當作一種product。那windows和linux以及mac都

原创 CEGUI 中文輸入的坎坎坷坷

  CEGUI的中文輸入是一個老話題了,由於本人是初學者,對於好多問題也不瞭解。在此只簡單說一下自己遇到的問題。   開始做的時候上網找了好多資料感覺各種糊塗。後來受到師父點撥要用到消息鉤子。在網上搜了一個。研究半天才知道怎麼用。可是沒成

原创 CEF3在windows下使用Visual Studio2013配置

項目有嵌入頁面的需求,搜了一下發現CEF3可以實現。這裏不對CEF3做太多介紹,單純展示如何在windows下編譯CEF3。首先計算機上需要安裝Visual Studio(我本機用的是VS2013)新版CEF3 需要用CMake編譯所以去

原创 socket 獲取本機地址

今天看了一下用gethostname和gethostbyname 這兩個函數 獲取本機地址 記錄如下  WSADATA data; WORD ss = MAKEWORD(2,0); ::WSAStartup( ss,&data );/

原创 C++while與輸入流一起用的時候

今天寫一段代碼,發現了一個以前沒有遇到過的問題。 std::string str1,str2; std::cout << "input str1" << std::endl; while(std::cin>>str1) {

原创 C++ 對std::string 做 sizeof 操作

直接上代碼 我的機器是32操作系統 編譯器是 VS2008 const char a[] = "zhang"; int i; i = sizeof( a ); std::string str; int j = sizeof(str