原创 數據結構-關聯容器(C++)

根據“數據在容器中的排列”特性,容器可概分爲序列式(sequence)和關聯式(associative)兩種。 標準的STL關聯式容器分爲set(集合)和map(映射表)兩大類,以及這兩大類的衍生體multiset(多鍵集合)和multi

原创 程序優化示例

程序優化示例 初始代碼如下: #define IDENT 0 #define OP + typedef int data_t; typedef struct { long int len; data_t *data; }

原创 數據庫範式

第一範式( 1NF ):屬性不可分; 第二範式(2NF):符合1NF,並且,非主屬性完全依賴於主鍵,而不是依賴於部分主鍵屬性; 第三範式(3NF):符合2NF,並且,消除傳遞依賴; BC範式(BCNF):符合3NF,並且,主屬性不依

原创 The C++ Standard Library: RTTI(Run-Time Type Identification,運行時類型識別)

http://www.cppblog.com/smagle/archive/2010/05/14/115286.aspx RTTI(Run-Time Type Identification,運行時類型識別),它使程序能夠獲取由基指針或

原创 find命令常用介紹

在目錄/home/xuefu下查找後綴爲.c的所有文件 find /home/xuefu -name '*.c' 在目錄/home/xuefu下查找內容包含struct的後綴爲.h的所有文件 find /home/xuefu -n

原创 圖算法-Dijkstra算法

Dijkstra算法解決的是帶權重的有向圖上單源最短路徑問題,該算法要求所有邊的權重都爲非負值。 Dijstra算法在運行過程中維持的關鍵信息是一組結點集合 S 。從源結點 s 到該集合中每個結點之間的最短路徑已經被找到。算法重複

原创 The C++ Standard Library: Standard Exception Classes

語言及庫中支持的所有異常類都繼承自基類exception。 標準庫中的部分類,比如string類,它們支持詳細的錯誤處理,覈查每一個可能發生的問題,並在有錯誤的時候拋出(throw)exception。而另一些追求速度高於安全的類,比如標

原创 The C++ Standard Library: shared_ptr and unique_ptr

1. unique_ptr支持模板參數爲一個數組類型,而shared_ptr不能這樣做; See Section 5.2.1,page 80 std::unique_ptr<int[]> p(new int[10]); // OK

原创 應用:性能提高技術

這裏給出《深入理解計算機系統》一書中第五章關於優化程序性能的一些總結,得出關於如何編寫高效代碼的很重要的經驗教訓: 高級設計。爲遇到的問題選擇適當的算法和數據結構。要特別警覺,避免使用那些會漸進地產生糟糕性能的算法或編碼技術。 基本編碼

原创 數據結構-序列容器(C++)

vector,array,list,forward_list,deque,stack,queue,priority_queue

原创 數據結構-堆排序和優先隊列

1. 堆排序 1.1 堆 1.2 維護堆的性質 1.3 建堆 1.4 堆排序算法 2. 優先隊列 2.1 最小優先隊列 2.2 最大優先隊列

原创 數據結構-樹(tree)

1. 基本概念 從結點 n1 到 nk 的路徑(path)定義爲節點 n1 , n2 , … , nk 的一個序列,使得對於 1≤ i< k,節點 n1 是 ni+1 的父親。這個路徑的長(length)爲該路徑上的邊的條數。

原创 靜態庫與動態庫

靜態庫 編譯系統在編譯的過程中,將所有相關的目標模塊打包成一個單獨的文件,稱爲靜態庫(static library),它可以用做鏈接器的輸入。當鏈接器構造一個輸出的可執行文件時,它只拷貝靜態庫裏被應用程序引用的目標模塊。 在Unix系