原创 C語言小遊戲——五子棋

game.h #ifndef __GAME_H__ #define __GAME_H__ #include <stdio.h> #include <time.h> #include <stdlib.h> #defi

原创 關於時間複雜度和空間複雜度的計算

衡量一個算法的複雜度: 時間複雜度 空間複雜度 算法的時間複雜度和空間複雜度合稱爲算法的複雜度 時間複雜度 一般來說,一個算法執行所消耗的時間從理論上是算不出來的,只有通過上機運行才能測試出來。當然,我們也沒 必

原创 致我的CSDN博

曾很多次打開到這個編輯界面,都不知道從什麼開始寫起。每次都是對着屏幕發呆幾分鐘,然後默默的把電腦扣上。 直到今天,我 ,邁過來了。 爲了實現我的編程夢,大二我努力的轉了專業。 人真是環境的產物,大二,直到大三現在,我活在人人崇拜羨慕的狀

原创 vim常用指令

vim esc 命令模式: i 插入模式: shift : 底行模式 光標: j 向下 k 向上 l 向右 h 向左 o 在光標所在行的下面插入新行,並進入編輯模式 O 在光標所在行的上面插入新行,並進入編

原创 const&內聯&靜態成員&友元

1. const成員函數 2. 內聯 3. 友元 4. 靜態成員 const修飾成員函數 在成員函數後面加const,const修飾this指針所指向的對象,也就是保證調用這個const成員函數的對象 在

原创 深入理解C++動態內存管理

1. 對比C語言和C++的動態內存管理 2. 探索靜態內存管理和動態內存管理 3. 理解什麼是內存泄露及內存泄露的危害 4. new/delete 和operator new/operator delete和malloc/free的關係

原创 C++類的默認成員函數詳解及內存對齊規則

面向對象程序設計 概念:(Object Oriented Programming,縮寫:OOP)是一種程序設計範型,同時也是一種程序開發的方法。 對象指的是類的實例,將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈

原创 深入探索C++引用的實現原理

引用 1.引用的概念及用法 2.引用做參數 3.引用做返回值 4.彙編層看引用的特性 5.引用和指針的區別 1.引用的概念及用法 引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名。 定義的格

原创 深度剖析STL空間配置器

STL空間配置器: 空間配置器(allocator),顧名思義就是用來配置,管理,分配,釋放內存空間,它隱藏在一切容器的背後,默默工作,默默付出。 1.空間配置器爲什麼不叫內存配置器: 因爲空間不一定是內存,配置的空間可以是內存也可

原创 C++String淺拷貝&深拷貝&Copy On Write

簡單的賦值拷貝 class String { public: String(constchar*str) :_str(newchar [strlen(str)+1]) { strcpy(

原创 linux學習筆記——進程(一)

學習進程創建, 等待, 終止. 使用代碼實現. 編寫自主shell. 封裝fork/wait等操作, 編寫函數 process_create(pid_t* pid, void* func, void* arg), func回調函數就

原创 函數的調用過程,棧幀的創建和銷燬

函數的調用過程,棧幀的創建和銷燬 最近總被人問到有關函數傳值調用的問題,當然像形參的改變不影響實參,數組的傳值會退化成 指向數組首元素的一級指針這樣的問題儘管我們已經很清楚了,但在調試程序的時候總會發現自己屢 屢會犯錯。所以深入理

原创 爲什麼C++支持重載,C語言不支持

我們都知道C++語言支持重載,而C語言不支持 可是爲什麼C++中可以支持函數重載,而在C語言中不支持呢? 函數重載 首先來看,什麼是函數重載:在同一作用域類,一組函數的函數名相同,參數列表不同(個數不同/類型不 同),返回值

原创 哈希表的實現(閉散列法和拉鍊法)

哈希表 哈希表(Hash Table)也叫散列表,是根據關鍵碼值(Key Value)而直接進行訪問的數據結構。它通過把關鍵碼值映射到哈希表中的一個位置來訪問記錄,以加快查找的速度。這個映射函數就做散列函數,存放記錄的數組叫做散列表。 理

原创 哈希擴展——位圖&布隆過濾器

位圖 來看一道題: 給40億個不重複的無符號整數,沒排過序。給一個無符號整數,如何快速判斷一個數是否在這40億個數中。 要快速判斷一個數是否在一組數中:比較快的算法有:平衡搜索樹、哈希表等。而這裏如果直接建立一個哈希表的話,每個節點存