原创 算法:KMP算法實現的模式匹配

      所謂的模式匹配就是給定兩個字符串:一個是主串,一個是匹配串,要判斷後者是不是前者的一個子串或者求出在母串中出現的次數或者位置。必須連續。也就是說,判斷,主串中是不是包含匹配串。比如:abcdfrdsadf和dsa,dsa就是前

原创 C++學習筆記5---虛函數的工作原理

ps:編譯器對虛方法使用動態聯編,運行時根據對象決定調用父類還是子類的這個方法。   虛函數的工作原理是:基類的對象維護一個虛函數表,所謂的維護,方式是用一個隱藏指針指向虛函數表。這個虛函數表中記錄基類中定義的虛函數的函數地址。同樣,派生

原创 01揹包問題動態規劃詳解(轉載)

轉載自http://hi.baidu.com/%C5%DD%B0%C9%BA%C8%BE%C6/blog/item/667eb6ae038daecb7cd92ac4.html 動態規劃是用空間換時間的一種方法的抽象。其關鍵是發現子問

原创 研究項目筆記

1.入口函數:AdminWeb:啓動,停止web服務器 RunService(argc,argv,NULL,SZSERVICEDISPLAYNAME,SZDEPENDENCIES); 2.解析XML:LoadWindow("main.xm

原创 使用vector時報很多warning

    我大學學的是C語言,所以研究生階段想自學C++,畢竟他們有那麼多不同。但是在使用vector的時候報warning了———— Compiling... TextSearch.cpp f:/workspaceforc++/容器/te

原创 C++學習筆記2--使用類

1.如果一段代碼中只是使用了std裏的很少的一部分函數時,就可以不必在開頭時候導入整個std,可以用例如std::cout<<的方式使用; 2.參數聲明爲引用的目的是提高效率,比如Sum(Time &t),本來可以直接傳值的,但引用效率高

原创 關於數據結構中的樹--這個我總是學總是忘的東西

由二叉樹的前序和中序遍歷結果可以推出整個二叉樹的結構;進而可以得到後序遍歷的結果。類似的,由後序,中序可以推出二叉樹結構。唯獨由前序,後序不能推出中序。爲什麼呢?我想了下,原因很顯然,前序中可以明確知道根節點是第一個元素,後序中也只能確定

原创 C++學習筆記4-----類的繼承第二篇

1。公有繼承中的多態公有繼承: 多態就是同一個方法有多種行爲,多種實現,它的行爲隨上下文的不同而不同。比如父類中有一個方法func(),子類中又重新定義了一個func(),雖然名字一樣,但是函數行爲不一樣。 2。實現多態的方法有兩種:1)

原创 Visio二次開發的環境搭建

當然要先安裝Visio 安裝Visio SDK 打開Visio,工具--ShapeStdio 打開後,會看到數據庫的配置,要求你選擇數據源等等。我在這裏折騰了很久,後來看MSDN,說如果你想連接SQL Server的數據庫的話,那就要先運

原创 cerr

http://baike.baidu.com/view/2254717.htm?fr=ala0_1 cerr   cerr與cout的主要區分就是,cout輸出的信息可以重定向,而cerr只能輸出到標準輸出(顯示器)上。   例

原创 算法:最長公共子序列

1。最長公共子序列是求出兩個字符串的公共序列,不要求連續,千萬不要跟公共字串的概念弄混了。 2。算法中有一個用於存儲公共子序列長度的數組,關於這個數組是如何計數的,我還沒看懂,但是我調試運行了下,比如字符串1:“abcdef”,字符串2:

原创 C++學習筆記1--類和對象

1.類成員默認的是private,一般爲了明確,把private顯式地寫上了; 2.類與結構體作比較:struct成員默認的是public,結構體存儲純粹的數據類型,並且這些數據類型沒有私有的特性; 3.位於類定義裏面的方法會自動成爲in

原创 關於排序的總結---這個總是考總是忘的東西

排序方法分類:內排序,外排序。按照方法分爲:1)插入排序:包括直接插入排序和希爾排序;2)選擇排序:直接選擇排序和堆排序;3)交換排序:冒泡排序和快速排序;4)歸併排序。 穩定的排序方法:直接插入排序,冒泡排序,二路歸併排序 不穩定的:希

原创 散列函數

       1。散列函數的選取原則是:運算儘可能簡單;函數的值域必須在散列表的範圍內;儘可能使得結點均勻分佈,也就是儘量讓不同的關鍵碼具有不同的散列函數值。需要考慮各種因素:關鍵碼長度、散列表大小、關鍵碼分佈情況、記錄的檢索頻率等等。

原创 C++學習筆記4-----類的繼承基礎概念

1  類爲什麼要引入繼承機制?簡單地說,道理如同你繼承一筆財產,總比讓你白手起家容易很多。 2  通過繼承可以完成哪些事情?1。在已有類的基礎上添加新功能2。添加新數據3。修改父類方法。 3. 派生類不能直接訪問基類的私有成員,必須通過基