該項目包括一些常見的編碼問題,實驗代碼,設置腳本,算法和數據結構和設計模式,主要在C ++中開發
這是私人的,但我決定出於兩個原因公開公開:
一個。人們可以從代碼中受益於常見問題,算法和設計模式
b。我可以在我的代碼上有新鮮和多種眼睛,以幫助我提高其質量
目錄內容在下面說明以獲得更好的導航。有關構建說明,請參閱此讀數中的下一節
本節/目錄包含1994年的四個團伙的23種設計模式的代碼示例
有3個標準小節:結構,創造和行為
每個小節目錄都包含上述3個類別下的每個設計模式的源文件
本節目錄(DSA_ESCISES)包含各種DSA問題語句及其解決方案,以源代碼的形式。
每個類別的問題語句文檔都置於其各自目錄之下。每個問題的末尾都提到了包含解決方案的源文件。
main()函數來驗證解決方案,以解決相應問題本節目錄ExperimentalCode包含基於我學到的新C ++概念的純粹剝削代碼。我把它留在這裡,以防萬一它使任何也正在學習C ++或新程序員的人受益
C ++專家可以安全地忽略此部分
該目錄包含該項目中大多數來源所需的標頭或共享庫的形式的共同實用程序。如果在共享庫中定義了方法而不是源代碼,則可以幫助減少重複和二進制大小。
該目錄包含一些MISC腳本和用於設置我的項目環境或開髮用於評估概念的代碼。
它在這裡結束而不是在實驗代碼部分中的原因是由於其性質。例如, DL_API_shell.c是一個源文件,其中包含來自libdl.so共享庫的動態加載程序API,並且需要與CMAKE中的其他源文件中的其他源文件進行不同的彙編,如下所示:
gcc -rdynamic -o DL_API_shell DL_API_shell.c -ldl
Shell腳本可能不適sudo您的Project Env設置
該項目已使用CMAKE Build Tool在各個級別設立,以便不同部分在構建時提供更高的精力。
其次,該項目沒有統一的二進制/庫與其他可重定位對象文件鏈接,每個源文件都是獨立的應用程序
在每個級別,CMAKE添加了下游目錄的子目錄。默認情況下,頂級CMAKE將構建所有駐留在所有部分目錄中的源。如果您打算與任何一個部分一起工作,例如DesignPatterns這可能是浪費時間
在這樣的情況下,註釋(cmake註釋以#開頭) add_subdirectory()調用不需要。在我們的示例中,頂級CMAKE看起來像這樣:
add_subdirectory(DesignPatterns)
#add_subdirectory(DSA_Exercises)
#add_subdirectory(ExperimentalCode)
這將僅生成bin下的DesignPatterns源代碼二進製文件
該規則可以以類似的方式遞歸應用於下游目錄以節省構建時間
一旦在CMake中設置了所需的子目錄後,如果您在VSCODE中打開了項目,則運行Clean Reconfigure All然後進行Clean Rebuild All以構建源
在其他情況下,在項目的根級上運行以下命令
mkdir build
cd build
cmake ..
make
涉及來源的輸出將在該項目各自的部分目錄下的bin目錄中生成
請注意,此處的代碼並不完美!可能會有更好,更優化的方法來實施某些任務,這正是將此儲備庫暴露給公眾的目的。
我正在邀請上述任何部分中的代碼上的建議和修改。
您可以發送電子郵件([email protected])我的建議/修改或創建新的分支並提出針對主人分支的拉請請求
如果發現任何東西,也可以在github上提出問題
愉快的編碼和學習!