Time of Update: 2018-12-07
由於C++相容於C,為了用C++維護以前用C寫的程式,可能會遇到用C寫的array,但C++的std::vector遠比array好用,所以可能必須將array轉成std::vector繼續維護,以下的程式demo如何將array轉成std::vector。 1/**//* 2(C) OOMusou 2006 http://oomusou.cnblogs.com 3 4Filename : ArrayToVectorByConstructor.cpp 5Compiler : Vis
Time of Update: 2018-12-07
因為碩士要修24學分才能畢業,也就是要修8門課,有不少學長碩一上修4門,碩一下修4門,這樣碩一就能將課全部修完,碩二可以專心寫論文。我之前是怕應付不過來,只敢很保守的修3門,打算3、3、2的方式在碩二上將課修完即可,其他有興趣的課旁聽就好,不過今天早上所旁聽的『物件導向程式設計』,讓我很想修,考慮了一下,就請教授加簽了,這樣我這學期也是4門課了。為什麼會想加修『物件導向程式設計』呢?事實上這門課上的就是C++,不過並不是從C++語法頭教起,要求你必須先會C++,這門課將只討論C++較進階的部份,
Time of Update: 2018-12-07
Abstract本文介紹如何將struct array寫入binary file,並從binary file讀出struct array。IntroductionC語言 /
Time of Update: 2018-12-07
Abstract若用C語言配合迴圈,這是個很簡單的題目,但若用C++配合STL,則有很漂亮的寫法。Introduction陣列中有2、3、1、3、5五個值,希望能列出大於2的所有元素。C++1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com3 4 Filename : GenericAlgo_remove_copy_if_predicate.cpp5 Compiler : Visual C++ 8.06 Description :
Time of Update: 2018-12-07
雙重檢測鎖(Double-Checked Locking)實現的Singleton模式在多線程應用中有相當的價值。在ACE的實現中就大量使用ACE_Singleton模板類將普通類轉換成具有Singleton行為的類。這種方式很好地消除了一些重複代碼臭味,而且,最佳化後的效能較標準互斥版本提高15倍[1]。最近在用C++/CLI做一些工作,Singleton不可避免地需要用到,於是我又製造了一次車輪
Time of Update: 2018-12-07
在現在的開發過程中為了減少單個檔案的代碼量,降低協同開發時檔案被獨佔鎖定的幾率,我們經常會使用擴充方法。擴充方法使您能夠向現有類型“添加”方法,而無需建立新的衍生類別型、重新編譯或以其他方式修改原始類型。擴充方法是一種特殊的靜態方法,但可以像擴充類型上的執行個體方法一樣進行調用。 隨著DLR的廣泛使用,面臨越來越多需要C#代碼和指令碼語言互動的需求。(如果你知道如何使用,建議去DLR的官方網站去看看)但是,對於擴充方法來說如果直接使用會有發現DLR無法尋找到指定的方法。
Time of Update: 2018-12-07
使用vector.insert將array轉vector,雖然也是一行完成,但不是那麼直觀,建議還是用constructor的方式將array轉std::vector。 1/**//* 2(C) OOMusou 2006 http://oomusou.cnblogs.com 3 4Filename : ArrayToVectorByInsert.cpp 5Compiler : Visual C++ 8.0 6Description : Demo how to convert arr
Time of Update: 2018-12-07
Abstract本文例舉了我們在註解程式碼時的13個小技巧,這讓我們的代碼更易讀懂,更易維護。Introduction原文出處:http://www.devtopics.com/13-tips-to-comment-your-code/簡中翻譯:http://www.cnblogs.com/nicholasun/archive/2008/04/26/1171557.html本文採用簡中翻譯為藍本,潤飾成繁中翻譯。1.Comment each level對每一層級採用統一的方式注釋每個程式碼區塊,
Time of Update: 2018-12-07
Abstract要判斷奇數偶數,我們都會想用%,最近在Verilog發現一個小技巧也可用在C/C++...Introduction在(原創) 如何設計除頻器? (SOC) (Verilog) (MegaCore)中有一小段code如下:assign o_clk = (N == 1) ? clk : (N[0]) ? (clk_p | clk_n) :
Time of Update: 2018-12-07
Abstract若需要將程式碼放進word交報告或做檔案時,或許我們會想將程式碼加上行號方便講解,如同部落格園顯示程式碼那樣,我們該如何做呢?Introduction使用環境:Visual C++ 9.0 / Visual Studio 2008一段C++的小程式,可以幫程式碼加上行號後輸出。map_code_line.cpp / C++1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com3 4 Filename :
Time of Update: 2018-12-07
Abstract二維陣列和字串陣列是個很類似的東西,The C Programming Language還特別提出一小節來探討,我們來看看兩者的差異在哪裡?Introduction在The C Programming Language 2nd 5.9節 p.113標題為Pointers vs. Multi-dimensional Arrays,特別討論二維陣列與字串陣列的差別,不過他並沒有提出實際的範例來解釋,我試著用了一個簡單的範例來探討。C語言1 /* 2 (C) OOMusou 2008
Time of Update: 2018-12-07
Abstractstd::string為library type,而int、double為built-in type,兩者無法利用(int)或(double)的方式互轉,本文提出轉換的方式。Introduction使用環境:Visual C++ 9.0 / Visual Studio 2008Method 1:使用C的atoi()與atof()。先利用c_str()轉成C string,再用atoi()與atof()。string_to_double.cpp / C++Code
Time of Update: 2018-12-07
Abstract由於C#的乾淨俐落與Visual Studio工具的增強,越來越多人選擇用C#開發GUI而捨棄MFC,但以前已經有太多程式使用Visual C++ 6.0與MFC開發,一時之間又不可能將C/C++的code全部用C#改寫,所以將原本用C/C++寫的Business Rule整理成DLL給C#使用也是個不錯的選擇。Introduction使用環境:Visual Studio 2008Step 1:使用Visual Studio
Time of Update: 2018-12-07
Abstractfor_each()是STL中少數可以回傳值的algorithm,此範例在展示for_each()此特殊功能與function object可以留住state的特性。Introductionfunction object與global function的差別除了function object可以傳入參數外,還可以不使用static就可以留住state。一個簡單的需求,想要每印n個數字就換行,並且統計出所有iterator的和,所以function
Time of Update: 2018-12-07
map和multimap都自帶find(),不需Generic
Time of Update: 2018-12-07
此範例demo如何使用STL的queue container,要將資料加進queue時,只要用q.push(item)即可,但要取出資料時,並不是用q.pop(),而是用q.front()取出最前面的資料,q.pop()則是將最前面的資料取出queue,其回傳值為void。 1/**//* 2(C) OOMusou 2006 http://oomusou.cnblogs.com 3 4Filename : Queue.cpp 5Compiler : Visual C++ 8.0 6
Time of Update: 2018-12-07
原文地址:http://hi.baidu.com/tangguoshequ/blog/item/d587dc170878c8946538dbd1.html1. Levenshtein Distance該演算法又稱之為 "編輯距離",用於計算兩個字串的相似程度。原理很簡單,就是返回將第一個字串轉換(刪除、插入、替換)成第二個字串的編輯次數。次數越少,意味著字串相似性越高。演算法原理:Wikipedia - Levenshtein
Time of Update: 2018-12-07
原文地址:http://blog.csdn.net/wooin/archive/2006/04/29/697106.aspx我們在C語言編程中會遇到一些參數個數可變的函數,例如printf()這個函數,它的定義是這樣的: int printf( const char* format,
Time of Update: 2018-12-07
__FILE__ 源檔案的名稱 如XXX.cpp__LINE__ 代碼在源檔案中是第幾行 __DATE__ 源檔案完成日期如Aug 17 2011__TIME__ 源檔案完成時間如19:31:13__TIMESTAMP__ 源檔案完成日期時間如Wed Aug 17 19:27:36 2011如分配記憶體函數malloc()的一個版本就使用了上面的宏#define malloc(s) _malloc_dbg(s, _NORMAL_BLOCK,
Time of Update: 2018-12-07
前不久看了一個C#菜鳥級工具 功能是在form寫代碼,重新編譯在Console裡執行 當時覺得這東西很新穎,就下載下來看看,沒想到坑爹的竟然是F#語言寫的,會函數式語言有幾個菜鳥啊啊啊啊- - 本著好奇精神,也為了在每月開會能有什麼東西能講,於是自己在網上找了點資料自己寫了一個,運行圖如下 OK,程式本身很簡單,在Console基礎上new一個form,然後form的button事件則是調用Console方法然後重編譯這段代碼執行 以下是建構函式裡拼接代碼的部分。///