原创 map 數組結構體計數(二)

結構體計數 #include<iostream> #include<string> #include<map> using namespace std; struct Key_Value_Pair { int inde

原创 成員函數的重載、覆蓋和隱藏的區別與聯繫

1.重載:說的是在同一個類中,有兩個成員函數同名,他們的形參列表必須不同,也就是說他們的形參個數和形參類型至少有一着是不相同的。但不能出現函數的形參個數與類型均相同,僅僅依靠函數返回值類型的不同來區分,這和普通函數的重載概念是完全

原创 虛函數專題

結合筆記本 程序: #include <iostream> using namespace std; class Base1 { public: virtual void display() const; //虛

原创 map技數,數組計數,結構體計數的相關比較與分析(一)

數據表記錄包含表索引和數值,請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。 輸入描述: 先輸入鍵值對的個數 然後輸入成對的index和value值,以空格隔開 輸出描述: 輸出合

原创 模板類問題

template<class T> class Foo{ T tVar; public: Foo(T t) : tVar(t) { } }; template<class T> class

原创 經典線程同步總結 關鍵段 事件 互斥量 信號量

1、線程(進程)同步的主要任務 答:在引入多線程後,由於線程執行的異步性,會給系統造成混亂,特別是急用臨界資源時,如多個線程急用同一臺打印機,會使打印結果交織在一起,難於區分。當多個線程急用共享變量,表格,鏈表時,可能會導致數據

原创 多線程(六)經典線程同步問題事件Event

Event可以解決線程的同步問題 事件Event實際上是個內核對象,它的使用非常方便。 CreateEvent:創建事件, 函數原型: HANDLE CreateEvent(LPSEURITY_ATTRIBUTES lpE

原创 多線程入門(一CreateThread與_beginthreadex)

用CreateThread創建多線程 #include<iostream> #include<windows.h> DWORD WINAPI ThreadFun(LPVOID pM) { printf("子線程的線程ID

原创 字符串分割與質數問題

•連續輸入字符串,請按長度爲8拆分每個字符串後輸出到新的字符串數組; •長度不是8整數倍的字符串請在後面補數字0,空字符串不處理。 連續輸入字符串(輸入2次,每個字符串長度小於100) 輸出描述: 輸出到長度爲8的新字符串數

原创 KMP算法

kmp算法 編輯 KMP算法是一種改進的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同時發現,因此人們稱它爲克努特——莫里斯——普拉特操作(簡稱KMP算法)。KMP算法的關鍵是利用匹配失敗後的信

原创 多線程同步問題

程序描述: 主線程啓動10個子線程並將表示子線程序號的變量地址作爲參數傳遞給子線程。子線程接收參數-——sleep(50)——全局變量++——sleep(0)——輸出參數和全局變量 要求: 1、子線程輸出的線程序號不能重複

原创 多線程、進程(二Interlocked)

了描述方便和代碼簡潔起見,我們可以只輸出最後的報數結果來觀察程序是否運行出錯。這也非常類似於統計一個網站每天有多少用戶登錄,每個用戶登錄用一個線程模擬,線程運行時會將一個表示計數的變量遞增。程序在最後輸出計數的值表示有今天多少個用

原创 動態規劃2

最長遞增子序列的問題 給定數組arr,返回arr的最長遞增子序列長度。比如arr={2,1,5,3,6,4,8,9,7},最長遞增子序列爲{1,3,4,8,9},返回arr的最長遞增子序列長度。比如arr={2,1,5,3,6,

原创 計算字符串中某一個字符的個數

第一種解法: 注意讀數據用的是:getline 大寫A是65,小寫a是97; #include<iostream> #include<string> using namespace std; int main()

原创 動態規劃

臺階問題 有n級臺階,一個人每次上一級或者兩級,問有多少種走完n級臺階的方法? f(i)=f(i-1)+f(i-2); 矩陣路徑最小問題 給定一個矩陣m,從左上角開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的