原创 線程之路六:讀者寫者的問題

//有一個寫者很多讀者,多個讀者可以同時讀文件,但寫者在寫文件時不允許有讀者在讀文件,同樣有讀者在讀文件時寫者也不去能寫文件。 #include <istream> #include <Windows.h> #include <proce

原创 String、StringBuffer與StringBuilder之間區別

String對象是不可改變的,每次使用String類中的方法時,都要在內存中創建一個新的字符串對象,這就需要爲該新對象分配新的空間。在需要對字符串執行重複修改的情況下,與創建新的String對象相關的系統

原创 線程之路五:消費者生產者

一個生產者,10個消費者,4個緩衝區 //有一個生產者在生產產品,這些產品將提供給若干個消費者去消費,爲了使生產者和消費者能併發執行, //在兩者之間設置一個具有多個緩衝區的緩衝池,生產者將它生產的產品放入一個緩衝區中,消費者可以從緩衝區

原创 KMP算法

#include <iostream> using namespace std; void originalMatch(char* o,char* m) { int original = strlen(o); int match =

原创 大話設計模式之簡單工廠模式和概念介紹

一:UML圖的一些基本寫法: 類圖: 一個矩形表示一個類圖,分三層,第一層表示類的名稱,如果抽象類,就用斜體表示,第二層表示類的特性,就像類的字段屬性,第三層表示類的操作,即方法和行爲。 "+"表示public,“-”表示private,

原创 算法導論:第一講:插入排序和歸併排序

從今天開始每天至少一個算法開始寫博客 算是自己對自己的一個監督吧!只寫代碼,不講原理!有問題自己查,也希望大家能給我改錯! 所有代碼在VS2010均調試通過!順便推薦大家一款軟件Visual Assist 10.8.2029 (Gener

原创 線程之路之四:進程同步線程互斥

信號量: #include <iostream> #include<Windows.h> #include <process.h> HANDLE semaphore; CRITICAL_SECTION b; int num; unsig

原创 線程之路三:設置時間和互斥量mutex

上一節中,我們用CriticalSection方法得到了連續數,其實這主要是CriticalSection所包含的區域與前面的原子操作有類似的功能。但是前面原子的操作沒有得到連續的是因爲cout部分和原子操作不是連續的,在cout之前有可

原创 寫一些結構體的代碼(stack,queue,現行表,二叉樹,圖模板 持續更新……)

棧結構: heap.h #ifndef HEAP_H #define HEAP_H #include <iostream> template<typename T> class Heap { private: static const

原创 要想進行二次開發,先進行分析之一:

我們開始介紹第一個類:HashTable class HashTable { public: virtual ~HashTable(); //以下必須由一個特定子類實現 static HashTable* create(int

原创 待修改,樹的深度搜索和廣度搜索

tree.h #ifndef RBTREE_H #define RBTREE_H #include <iostream> #include <cstdlib> #include <ctime> #include <Stack> #incl