原创 STL vector 和 QT QVector的用法差別實例

1.STL與數據結構        STL是C++裏最常用的容器(但不是最好的容器)。很多人在計算機學習階段,對計算機的數據結構課程是一塌糊塗的;這種一塌糊塗的感覺,甚至伴隨着很多計算機軟件工程師的長期的職業週期。當然,這其實並不能夠完全

原创 git reset --hard後恢復

git reset --hard 是強制覆蓋命令,在這之後,本地將會強制覆蓋。 今天不小心執行了這個命令,然後,本地程序強制覆蓋;當時,我立馬哭了。 當時就想了下:git 命令,雖然強制覆蓋了,但本地硬盤有相應文件,肯定是可以恢復的。 於

原创 由一個錯誤說const的用法,兼談編譯器

今日,對一個函數進行改寫,發現編譯錯誤。原程序和錯誤如下: std::string getResult(const std::string &strInput, const std::map<std::string, std::stri

原创 C++11部分新特性

C++11新特性概述        C++11標準是C++語言的重大改動。在C++11之前,C++本身更像C語言,兼容和借用了C語言的很多特性。在C++11之後,C++語言更多是借鑑了JAVA、python等所謂現代語言的特點。經過C++

原创 QT之QEvent機制

1.QEvent簡介        QEvent是QT的事件機制。QT的事件機制,肯定是借鑑了Windows的消息機制。Windows把所有的鼠標鍵盤以及內部事件都當作消息,並放進消息處理機制處理。QT本身,是把各個操作系統的API進行調

原创 OKR工作方式

1.OKR的定義        OKR,英文全稱“Objectives and Key Results”,中文意爲“目標和關鍵成果”。OKR是一種工作方式和工作系統,據說可以讓目標管理從上到下貫穿到基層。這套方法和系統是由英特爾的老總安迪

原创 C++ new失敗處理

1.C++裏new分配空間失敗        C++裏,new是最常用的分配堆空間的操作符。        new和malloc的區別體現在這幾方面:        1)new是操作符,malloc是函數;        2)new和de

原创 創作了定時構建腳本

這幾天一直試圖搞定Jenkins,最後發現Jenkins最後還是要執行Shell語句。筆者想了想,還不如自己製作一個Shell腳本簡單。 需要構建的工程爲QT工程,因此,自己製作的腳本應該有以下幾個目的: 1)對QT工程進行構建; 2)可

原创 Linux環境搭建Gerrit服務器與升級Gerrit服務器

1.Gerrit是什麼        Gerrit是Google開發的開放源代碼的代碼審覈工具,可以方便得進行代碼審覈工作。代碼審覈方便事前和事後加強監督和管理,從而提高工程質量,保證產品的高質量開發。        Gerrit本身就包

原创 tinybind編譯和運行

1.背景        XML是一種極好的語言,可以對現實實際和項目進行合理描述。XML解析也有各種成熟的方案。C++是一種常用的語言,有成熟的XML解析工程用於C++。但XML直接轉C++的結構體,是一種不太好完成的事情。於是,各種搜資

原创 ubuntu linux 環境下的QT程序打包

理論上來說,每一個程序都有自己的運行環境;所以,當程序完成後進行發佈,應該提供發佈包。 在Windows上,具有打包工具;典型的打包工具如Advanced Installer。這些打包工具本身上就是把程序和其依賴庫選擇到相應庫上進行安裝。

原创 ubuntu QT Creator Fatal IO error 2 (沒有那個文件或目錄) on X server :0

這幾天,碰到一個很奇怪的問題,用QT Creator 編寫的程序,在Windows上運行良好;移植到MAC上,也測試運行沒有問題。現在計劃把程序移植到Ubuntu上。 移植完成之後,編譯沒有問題(在移植到MAC上時已經把Windows與類

原创 Ubuntu QT Creator cannot open shared object file: No such file or directory解決方法

Ubuntu QT Creator在調試程序的時候,可能會遇到cannot open shared object file: No such file or directory的問題。 這個時候,需要做的事情是:對QT  Creator進

原创 CORBA、IDL、COM和Protocol Buffer

1.CORBA         CORBA是一種標準,是公共對象請求代理結構(Common Object Request Broker Architecture),是由對象管理組織(Object Management Group,縮寫爲O

原创 git 合併兩個倉庫

1.背景         由於原來有一個git庫;但原來的git庫無法滿足新的要求。故又搭建了一個Gerrit庫。在Gerrit庫安裝並上傳代碼後,原來的版本庫又進行了修改。於是,產生了合併代碼庫的需求。 2.做法       1)下載G