原创 求最大公約數

#include<iostream> using namespace std; //方法一 輾轉相除法(問題規模遞減得很快, 但求餘效率低) // 在第一次調用之後 可以保證 a>b int gcd_1(int a, int b) {

原创 局域網聊天系統__4.服務器調試篇

這裏主要遇到兩個錯誤,都是粗心吧 1.     BOOL CServerDlg::VerifyUserAndUpdateUserList(CUserInfo& userInfo, CClientSocket *pClient)      

原创 多線程非阻塞模式實例

多線程非阻塞模式到現在算是告一段落吧 雖然還有一些小的bug需要修正 總結一下  準備向後面進發  實現功能: 本程序主要實現遠程計算的功能 通過非阻塞套接字和多線程的結合 讓通信變得高效  服務器通過維護一個客戶端鏈表來實現對多個

原创 掃雷___核心鼠標邏輯

鼠標邏輯是掃雷最核心的部分。我們需要根據當先前鼠標位置,所在方塊的狀態和歷史狀態,遊戲狀態等等來綜合考慮界面的體現      所需要的狀態量:      雷狀態:正常STATE_NORMAL,空STATE_EMPTY,未知STATE_D

原创 線程安全幾個重要概念

實現線程同步的幾種手段:      二元信號量:           一種最簡單的鎖,只有兩種狀態 佔用和非佔用 適合只能被一個線程獨佔訪問的資源      多元信號量(信號量):           一種初始化爲N的信號量 允許最

原创 局域網聊天系統__3.服務器框架實現

CUserInfo類 主要包含一些必要數據以及Serialize支持class CUserInfo : public CObject { public: DECLARE_SERIAL(CUserInfo); CUser

原创 實現pop push min操作時間複雜度爲O(1)的棧結構

要求:實現一個棧結構 使得pop push min(獲得棧中最小元素)操作的時間複雜度爲O(1)要實現min函數複雜度爲O(1) 肯定不能遍歷彈入的數據也不能簡單維護一個小頂堆(小頂堆的維護需要lg(n)時間)這個時候可以利用棧先進後出的

原创 局域網聊天系統__2.服務器業務邏輯分析

服務器業務邏輯分析:    首先分析服務器應該實現的功能,在需求分析中並沒有提到客戶端和客戶端的通信是否需要通過服務器轉發,這裏選擇的是客戶端之間直接進行點對點通信,無需經過服務器處理,這樣使得服務器的工作減少了很多,只需要管理和更新成員

原创 結構體與位域的對齊

C結構體和C++中的類極爲相似 它也可以有構造和析構函數以及其他成員函數 成員函數也通過一個隱含的this指針來操作類成員 它們之間唯一的區別就是默認的成員訪問權限 類是私有 結構體是公有 以下對結構體的對齊操作等 大多數也對C++類適用

原创 局域網聊天系統__1.需求分析以及模型選擇

一。需求分析      該局域網簡易聊天系統主要分服務器和客戶端兩個部分。客戶端交於用戶進行聊天,服務器用戶管理所有用戶的信息。      客戶端功能:           1.和其他在線用戶進行正常聊天           2.更新用戶

原创 動態規劃__合唱隊形問題

問題描述      N位同學站成一排,音樂老師要請其中的(N-K)位同學出列,使得剩下的K位同學排成合唱隊形。   合唱隊形是指這樣的一種隊形:設K位同學從左到右依次編號爲1,2…,K,他們的身高分別爲T1,T2,…,TK,  則他們的

原创 掃雷___界面的加載

界面加載其實沒有自己想的那麼複雜: 窗口大小的預估及簡單3D效果的繪製:      如果想做一個和window自帶掃雷程序一模一樣的界面。可以借用一些工具來得到一些基本的量,比如各個矩形框的大小,它們由那些線條組成,線條的寬度等等,然

原创 動態規劃的一些整理

動態規劃的特徵和定義這裏就不談了,關鍵是要怎樣通過代碼來理解動態規劃。這裏收集了一些以前做過的動態規劃典型問題。裏面基本都有比較詳細的註釋以及當時對這些問題的一些理解和看法,並且對於所有的問題基本都有遞歸和迭代兩種版本給大家更好的對比和理

原创 C++ 內存分配(new,operator new)詳解

本文主要講述C++ new關鍵字和operator new, placement new之間的種種關聯,new的底層實現,以及operator new的重載和一些在內存池,STL中的應用。 一. new operator 和 ope

原创 STL空間配置器--《STL源碼剖析》讀書筆記

    STL空間配置器(allocator)在所有容器內部默默工作,負責空間的配置和回收。STL標準爲空間配置器定義了標準接口(可見《STL源碼剖析》P43)。而具體實現細節則由各編譯器實現版本而不同。下面介紹SGI STL中的allo