项目简介
本项目是基于C++编程语言的学习项目集合,涵盖数据结构、算法、设计模式、并发编程等多方面,从基础语法到高级特性都有涉及,适合不同层次的C++学习者参考和实践,助力学习者深入理解和掌握C++编程。
项目的主要特性和功能
- 自定义动态数组(myVector):模拟
std::vector
,用数组实现动态数组,可练习C++类、友元、重载、模板类和模板特化等基础内容。 - 简单数据库(myDB):实现简单数据库,能帮助初学者了解数据库基本组件和概念,参考开源项目实现。
- 链表实现(myList):实现单链表和双链表的插入与删除方法,设计对应迭代器,提升对链表结构的理解。
- B树实现(myBTree):学习并实现B树的插入和查询功能,通过代码加深对B树原理的认识。
- 井字游戏(myTTT):实现双人对战井字游戏,可练习简单网络编程,支持在Mac/Linux上运行,未来计划扩展为五子棋游戏。
- 设计模式(myDesignPatterns):整理并实现常见设计模式,如单例模式、工厂模式等,提升对设计模式的理解和应用能力。
- 智能指针(mySmartPointer):实现
unique_ptr
和shared_ptr
,加深对智能指针的理解,支持多线程环境,增强代码安全性和稳定性。 - 对象模型实验(myTestForObjectModel):通过实验验证《深入探索C++对象模型》中的理论知识,学习使用GDB调试,提升调试技能。
- 并发编程(myConcurrency):实现并行版本的
std::accumulate
,学习并发编程基础知识,实现线程安全的堆栈、队列和线程池,提升多线程编程能力。
安装使用步骤
- 下载源码:从项目仓库下载所有源码文件。
- 编译项目:使用C++编译器(如g++)编译项目中的每个文件,编译时需使用C++11或更高版本标准,例如:
g++ -std=c++11 myVector.cpp -o myVector
。部分子项目可能有特定编译说明和依赖要求,需参考对应README文件。 - 运行程序:编译成功后,运行生成的可执行文件,例如:
./myVector
。 - 参考文档:每个子项目的README文件中有详细说明和示例代码,可按需参考修改。
下载地址
点击下载 【提取码: 4003】