原创 哈希表

前言    當我們在編程過程中,往往需要對線性表進行查找操作。在順序表中查找時,需要從表頭開始,依次遍歷比較a[i]與key的值是否相等,直到相等才返回索引i;在有序表中查找時,我們經常使用的是二分查找,通過比較key與a[i]的大小來折

原创 五大算法設計思想

分治法 概念: 將一個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。 思想策略: 對於一個規模爲n的問題,若該問題可以容易地解決(比如說規模n較小)則直接解決,否則將其分解爲k個規模較小的子問題,這些子問

原创 HTTP協議

HTTP簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。 HTTP是一個基於TCP/IP

原创 Boost庫基礎-智能指針(shared_ptr)

shared_ptr shared_ptr與scoped_ptr同樣是用於管理new動態分配對象的智能指針,它們都重載了 *和->操作符,提供顯示bool類型轉換以判斷指針的有效性,get()可以得到原始指針,並且沒有提供指針算術操作

原创 Boost庫基礎-日期

1.date_time 它是一個非常全面且靈活的日期時間庫,基於我們日常使用的公曆,可以提供時間相關的各種所需功能,如精確定義的時間點、時間段和時間長度、加減若干天/月/年、日期迭代器等等,date_time庫還支持無限時間和無效時間

原创 ActiveX控件概述

組件對象模型(COM) 組件對象模型(Component Object Model,COM) 是基於Windows 平臺的一套組件對象接口標準,由一組構造規範和組件對象庫組成。是微軟公司於1993年提出的一種組件技術,它是一種平臺無關

原创 Qt 將圖片白色背景轉換爲透明背景

QImage convertImageWhiteColorAlpha(QImage val) { QImage imageAlpha = val.convertToFormat(QImage::Format_RGBA8888_P

原创 Qt 對圖片的base64加密與解密

加密 bool getFileContetBase64(const QString& strFilePath,QString &val) { bool bRet = false; if(!strFilePath.is

原创 設計模式-模板方法模式

模板方法模式結構圖 意圖:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 主要解決:一些方法通用,卻在每一個子類都重新寫了這一方法。 其中: Abstr

原创 設計模式-解釋器模式

解釋器模式結構圖 意圖:給定一個語言,定義它的文法的一種表示,並表示一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 主要解決:對於一些固定文法構建一個解釋句子的解釋器。  其中: AbstractExpression聲明一個程

原创 設計模式-中介者模式

中介者模式結構圖 意圖:用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。 主要解決:對象與對象之間存在大量的關聯關係,這樣勢必會導致系統的結構變得很複雜,同

原创 設計模式-橋接模式

橋接模式結構圖 意圖:將抽象部分與其實現部分分離,使它們都可以獨立地變化。 其中: Abstraction定義抽象類的接口,維護一個指向Implement類型對象的指針。 RefinedAbstraction擴充由Abstracti

原创 設計模式-組合模式

組合模式結構圖  意圖:將對象組合成樹型結構以表示“部分-整體”的層次結構。組合使得用戶對單個對象和組合對象的使用具有一致性。 其中: Component爲組合中的對象聲明接口;在適當情況下實現所有類共有接口的默認行爲;聲明一個接口

原创 設計模式-工廠方法模式

工廠方法模式結構圖 意圖:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。 其中: Product定義工廠方法所創建的對象的接口。  ConcreteProduct實現Product接口

原创 Qt之QThread(深入理解)

簡述 爲了讓程序儘快響應用戶操作,在開發應用程序時經常會使用到線程。對於耗時操作如果不使用線程,UI界面將會長時間處於停滯狀態,這種情況是用戶非常不願意看到的,我們可以用線程來解決這個問題。 前面,已經介紹了QThread常用的兩種方式: