该项目包括一些常见的编码问题,实验代码,设置脚本,算法和数据结构和设计模式,主要在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上提出问题
愉快的编码和学习!