Time of Update: 2018-12-05
引用的庫分為兩種:1.第三方軟體庫。例如:wxWidgets;
Time of Update: 2018-12-05
KMP演算法是拿來處理字串匹配的。換句話說,給你兩個字串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字串A="I'm matrix67",字串B="matrix",我們就說B是A的子串。你可以委婉地問你的MM:“假如你要向你喜歡的人表白的話,我的名字是你的告白語中的子串嗎?” 解決這類問題,通常我們的方法是枚舉從A串的什麼位置起開始與B匹配,然後驗證是否匹配。假如A串長度為n,B串長度為m,那麼這種方法的複雜度是O
Time of Update: 2018-12-05
1、使用位元運算乘法。把一個乘數變為2進位後,使用位元運算完成乘數的乘法。/* * 輸入:正整數k 和 正整數m * 輸出:k*m */ __int64 km(__int64 k, __int64 m){ __int64 x = k; int w = (int)floor(log(m) / log(2)) -1; __int64 e = 1 << w; for(int i=0; i<=w; i++){ x <&l
Time of Update: 2018-12-05
機率有相加和相乘兩種:乘法規則:一個過程分幾步走,後面的步驟只有在前面的步驟完成後才能進行,則完成整個過程的機率是前面各步驟的機率之積。可以想象一下,中間的某個過程完成的機率為0的話,最終的步驟無法完成,機率肯定是0了,這當然是乘法關係,加法運算就不會得到0的結果。加法規則:可以採用多個方法中的其中一個就可以完成某個過程(任意一個方法就可以完成),那麼完成這個過程的機率是這些方法的機率之和。舉例來說:從0-9十個號碼中取3D,首先要取出百位,然後取出十位,最後取出個位,這就是說完成3D號碼,你得
Time of Update: 2018-12-05
工作中的軟體需要在不同的應用情境下,啟動不同的視頻採集硬體,啟動的方法總結了一下,共有三種:1.通過預先處理命令和宏來處理不同硬體的代碼;2.通過寫入程式碼硬體的識別碼來辨別;3.通過UI讓使用者選擇;我們著重看一下第一種。先來瞭解 #define文法:#define 標識符 其他清單#define 標識符[(標識符, 選擇... , 標識符 )]
Time of Update: 2018-12-05
代碼規範比比皆是,但是很少有公司做好代碼規範的。忍不住想談談代碼規範的重要性,希望所有人都能夠重視起來。而且,我相信,如果我們代碼規範能夠做好的話,且不說開發水平提高多少,至少我們也會有很多出色開源項目。一、規範的代碼可以促進團隊合作
Time of Update: 2018-12-05
1.CPU佔用率曲線為正弦函數曲線: 第一步:想讓CPU佔用率曲線為某函數的曲線,首先是理解函數曲線與CPU佔用率曲線的關係,函數y = f(x), 對應到CPU佔用率曲線中來就是:x為流逝的時間,y為CPU佔用率;我們知道CPU的佔用率是0%-100%,也就是說函數的範圍範圍是[0-1],但是正弦函數的範圍是[-1,1],所以正弦函數需要做個變換才能把範圍變成[0,1],經過y = 1/2 + 1/2sinx變換,範圍就變成[0,1]了。 第二步:對於CPU佔用率 y = 1/2 + 1/2*
Time of Update: 2018-12-05
1. 先說pl/sql,sql*plus的區別。打個比方吧,容易理解一些:pl/sql -> C++語言 sql*plus -> Microsoft Visual C++ 6.0編譯器pl/sql 是oracle的擴充SQL後的語言,它包括標準SQL,oracle擴充SQL,oracle自訂函數,預存程序,觸發器,包... 而sql*plus是運行解釋pl/sql的程式,你可以在sql*plus裡運行sql語句,是實現使用者對資料庫系統進行管理的一種工具.2. 再說sql*plus,
Time of Update: 2018-12-05
從方法論意義上說,遞迴方法是一種從簡單到複雜、從低級到進階的可連續操作的解決問題的方法。它的每一步驟都是能行可操作的,各步驟之間是連續轉換的。遞迴定義是用簡單的、自明的要素描述、構造、說明複雜的整體。遞迴方法是通過解決簡單的問題來解決複雜的問題。在人們的思維過程中,普遍存在著遞迴機制。遞迴方法是一種處理問題的精緻技巧、解決問題的有效方法。從哲學方法論角度研究遞迴方法,具有重要的意義。
Time of Update: 2018-12-05
廢話不多說,直接上演算法:折線等分演算法:share = 20; //要等分的份數;length = line.GetLength(); //線的長度;num = line.GetPointsNum(); //線上的形狀點個數;step = length/share; //步長長度;cur_span = step;x1 = line.GetPointAt(1).GetX();x1 = line.GetPointAt(1).GetY();for
Time of Update: 2018-12-05
重構(Refactoring)這個詞最初由Martin Fowler 和 Kent
Time of Update: 2018-12-05
public class MyClass { public MyClass(){ } public void sayHello(String who) { System.out.println("hello world "+who); } } 如果要動態使用sayHello,可以用如下代碼 import java.lang.reflect.*; class
Time of Update: 2018-12-05
GOF給出的定義為:提供一種方法訪問一個容器(container)對象中各個元素,而又不需暴露該對象的內部細節。從定義可見,迭代器模式是為容器而生。再看STL:其中的容器提供迭代器,演算法使用迭代器。模式UML圖:對容器物件的各個元素的訪問必然涉及到遍曆演算法,如果單單是為了不暴露該對象的內部細節,可以在容器物件中實現遍曆演算法,提供遍曆自身的介面,但是為什麼不這麼做呢? 在這種情況下,容器承受了過多的功能,它不僅要負責自己“容器”內的元素維護(添加、刪除等等),而且還要提供遍曆自身的介面,這就
Time of Update: 2018-12-05
在windows作業系統中,如果要使用一個組件就必須註冊,這個註冊其實就是在註冊表中寫入標識,當然還必須首先把組件放入到系統目錄中,因為系統要對該組件進行統一的管理.我們還是先介紹什麼是組件?
Time of Update: 2018-12-05
Mediator的意思是中介者、調節者、傳遞物,顧名思義,這個模式在程式中必然負擔一個中介、調節、傳遞的工作。物件導向設計中,每個物件所負擔的工作儘可能的簡單明了,鼓勵物件將工作分布至其它物件上,讓一群工作屬性相同的物件得以共同合作,即所謂高彙總性,以增加物件的可重用性。然而在組織物件工作的同時,物件彼此之間可能知道彼此的存在,並相互依賴,這就使得物件之間的耦合性相對的提高,最差的情況下,所有的物件都知道彼此的存在,這又會使得系統的重用性降低。Mediator模式用一個中介的物件來封裝物件彼此之
Time of Update: 2018-12-05
位元組序,顧名思義位元組的順序,就是大於一個位元組類型的資料在記憶體中的存放順序。其實大部分人在實際的開發中都很少會直接和位元組序打交道。用到位元組序的地方有:1.開發跨平台軟體2.開發網路軟體3.解析某些二進位檔案,如AVI File Format這篇文章主要介紹Little-endian和Big- endian兩種位元組序。下面舉例說明:例:32bit寬的數0x12345678在Little-endian模式CPU記憶體中的存放方式(假設從地址0x4000開始存放)為:記憶體位址0x4000
Time of Update: 2018-12-05
繼承指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係;在Java中此類別關係通過關鍵字extends明確標識,在設計時一般沒有爭議性;實現指的是一個class類實現interface介面(可以是多個)的功能;實現是類與介面之間最常見的關係;在Java中此類別關係通過關鍵字implements明確標識,在設計時一般沒有爭議性;依賴可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關係是具有
Time of Update: 2018-12-05
下面的代碼不穩定,使用CVideoReplayer提供的職責時有時會出錯。unsignedlong WINAPI CSysncReplayer::DoReplayVideo( void * para ){ try { CSysncReplayer * replayer = (CSysncReplayer*)para; CVideoReplayer * videoReplayer
Time of Update: 2018-12-05
代表系統: Oracle Spatial (對象-關聯式資料庫)Oracle Spatial 提供了一套SQL 方案和函數,用來儲存、檢索、更新和查詢資料庫中的空間要素集合[2]。它包含下述組成部分:1. 一個方案(MDSYS),描述支援幾何資料類型的儲存、文法以及語義;2. 空間索引機制;3. 一套操作和函數,用於執行興趣地區查詢、空間串連查詢以及其他的空間分析操作;4. 管理工具。
Time of Update: 2018-12-05
首先瞭解一下打標籤有什麼作用:打標籤是為了標識整個產品當前的版本狀態;CVS中每個檔案都有自己的版本號碼,但整個產品自己也應該有一個版本標識(比如α版、β版、正式發布版等等),那麼我們如何知道產品的β版中所包含的每個檔案分別是什麼版本呢?這個就要靠標籤來解決了,標籤名字一般是產品的版本標識,標籤裡能看到含有哪些檔案,每個檔案分別是什麼版本。通常來說需要發布產品版本的時候就要打標籤了,不論是用於構建自我裝載環境,還是對外發布。其次瞭解一下如何在CVS中打標籤:對檔案進行標記標籤對一個或多個檔案或目