查看原文
其他

分享几款适合初学者的C语言、C++开源项目

IT服务圈儿 2022-09-11

The following article is from 程序员编程录 Author RioCoder

IT服务圈儿

有温度、有态度的IT自媒体平台


作者丨RioCoder

本文经 程序员编程录(ID:gh_31a668f3ba16)授权转载,转载请联系出处


说在前面

今天分享几款我收藏的适合初学者的C语言和C++领域的开源项目,有涉及语言基础知识的、有涉及数据结构和算法题的、有涉及设计模式的代码实现的,甚至还有涉及效率工具和实践的,希望能有帮助。

 

后面会再分享一波 Java领域 的开源项目


项目一

项目名称: C

项目简介: 是的,你没有看错,这个项目的名字就是单个字母C。C是一个宝藏项目,可以说是学习数据结构和刷算法题的利器,因为里面包含了几乎各种基础算法、数据结构、以及LeetCode算法题的C语言实现。具体包括:

  • 客户端/服务器问题
  • 统计方法问题
  • 进制转换问题
  • 各种数据结构:数组、链表、字典、二叉树、堆、栈、队列、哈希、图等等
  • 搜索/查找问题
  • 排序问题
  • LeetCode习题
  • 其他杂项问题

注意,下图中只是截取了一部分数据结构和算法题的具体实现:

对于我们的作用: 可以帮助我们更好的学习数据结构、以及刷算法题

项目源码地址: https://github.com/TheAlgorithms/C


项目二

项目名称: libhv

项目简介:libhv类似于libeventlibevlibuv,是一个跨平台的具有非阻塞I/O和计时器的异步事件驱动库,但libhv提供了更加简单易用的API接口并支持更加丰富的网络协议,基于它可以快速驱动HTTP服务端和客户端,从而提供高性能的http服务。

主要技术点或特性: 跨平台、事件循环、非阻塞I/O、支持IPv6、使用OpenSSL、支持多种网络协议

对于我们的作用: 可以帮助我们理解和实践操作系统的相关知识

项目源码地址:https://github.com/ithewei/libhv


项目三

项目名称: CPlusPlusThings

项目简介: CPlusPlusThings是一个适合初学者的从入门到进阶的仓库,里面包含了大量 C++语言的基础和进阶教程、源码剖析、工具推荐、实战练习等等,解决了初学者从入门到深入 C++的学习问题。

对于我们的作用: 可以帮助我们系统地学习 C++ 相关知识

项目源码地址: https://github.com/Light-City/CPlusPlusThings


项目四

项目名称: design-patterns-cpp

项目简介: 从项目名称就能够猜出来,这是一个C++语言版的设计模式实现,里面包含了常见设计模式的C++ 语言实现。

对于我们的作用: 帮助我们理解和实践设计模式相关知识

项目源码地址: https://github.com/JakubVojvoda/design-patterns-cpp


项目五

项目名称::tmux

项目简介: tmux一个开源免费的的终端复用软件。它的命令行界面非常炫酷易用,支持自由分割窗口,并且可以自由移动和调整,灵活且强大。一个非常强大的使用场景是:当远程连接到服务器使用时,只需要启动tmux,利用它就可以方便地进行后续操作,而无需打开多个ssh控制台窗口。

对于我们的作用: 既是一个高效的工具,研究源码也可以帮助我们学习和理解Linux环境实战编程。

项目源码地址: https://github.com/tmux/tmux


项目六

项目名称: netdata

项目简介: netdata是一款开源免费的炫酷Linux系统实时性能和运行状况的系统监控工具。netdata通过使用可交互的仪表盘形式,来提供灵活易用的系统监控。除了支持常见系统平台的安装之外,它还可以非常方便地安装于Docker容器和集群之中并提供监控服务。

对于我们的作用: 既是一个高效的工具,研究其源码也可以帮助我们学习和理解Linux环境实战编程。

项目源码地址: https://github.com/netdata/netdata




*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存