原创 算法學習--分治法

分治法的思想是:將原問題劃分爲與原問題具有相似結構的小問題,然後遞歸地求解小問題。其解決問題的過程可歸納爲以下三個步驟: 一,分解(Divide),將原問題分解爲一序列子問題; 二,解決(Conquer),遞歸地解子問題,若子問題足夠小了

原创 C++關鍵字之static

#include <iostream> using namespace std; class A { public: A(){}; ~A(){}; void set(int c)

原创 sizeof VS strlen

char buf[] = "Hello world" sizeof(buf) - 1 = strlen(buf)1.sizeof 是個宏,故而sizeof(buf)在編譯時即以知道。另外,它計算的是整個緩衝區的長度,包括字符串末尾的'\

原创 快快樂樂生活

從過年到現在,我浪費了很多精力和時間,我也學會了很多東西。而且很多東西都是從痛苦的掙扎之中學來的。現在再看看,當然會覺得有點可笑,可笑自己怎麼會那麼愚笨,竟陷入自己的情緒之中無法自拔。可是我也不能完全否認自己就能不那樣,實際上,我還是相信

原创 C++之friend

今天早上打開書,隨手一番,就看到了這個friend,挺親切的。記得第一次上C++課的時候,老師將個這個,可那時候覺得很陌生,那是多年以前的了。好吧,現在再來翻翻舊賬吧,畢竟是old friend再見面。 面向對象這一思想是C++精華之所在

原创 仿射集和凸集

首先,看看仿射集和凸集的定義: A set C is affine if the line through any two distinct points in C lies in C. A set C is convex if the

原创 C語言--運算符優先級

對於不確定性問題,要想辦法去確認,否則等待你的將會是Bug-----編程心得 上個月在南京爲項目中增加一個控制監視模塊的時候,草草地寫完了代碼,代碼中有一句是這樣的: if (indicator & 0x8000 == 0x8000)

原创 矩陣的norm

對於向量的norm,只要是接觸過一點線性代數的人來說,都是耳熟能詳。最爲常見的莫過於2-norm了。這裏不打算再去將向量的norm,最近我比較關心的是矩陣norm。矩陣norm有兩種常見的定義:一是induced norm;二是Frobe

原创 gdb調試子進程

用gdb調試多進程的程序會遇到困難,gdb只能跟蹤一個進程(默認是跟蹤父進程),而不能同時跟蹤多個進程,但可以設置gdb在fork之後跟蹤父進程還是子進程。 具體方法如下: 在使用GDB啓動程序後,首先調試的是父進程,若要切換成調試子進程

原创 不解的Bug

今日在寫ALM算法的C代碼的時候,遇到了一個令我匪夷所思的Bug。現將相關現象記錄如下: 在一個名爲utils.c的文件中定義函數dabs,並且在頭文件utils.h中申明瞭它並使用了extern關鍵字。然後我在alm.c的文件中使用到了

原创 數組初始化

提一個簡單的問題:如何聲明一個數組,並是他的所有元素被初始化爲零? 可能答案:當初始化值的個數少於數組元素個數時,前面的按序初始化相應值, 後面的初始化爲0(全局或靜態數組)或爲不確定值(局部數組)。 http://blog.china

原创 linux多線程編程

UNIX中,每個線程用一個唯一的ID標識,ID數據類型爲pthread_t。對線程ID進行處理的有以下兩個函數接口: int pthread_equal(pthread_t tid1, pthread_t tid2); //比較兩個線程I