学习C++应该做点什么项目

C++作为一门底层可操作性很强的语言,广泛应用于游戏开发、工业和追求性能、速度的应用。

比如腾讯,无论游戏,还是微信,整个鹅厂后台几乎都是 C++ 开发,对 C++ 开发者的需求非常大

但问题是C++入门和精通都比较困难,所以市面上的优秀人才很少。

因此网上有句话说“C++就是入职大厂的敲门砖!

经常会有人问我:

C++应该做些什么项目?

应该学习什么项目来提高自己的C++水平?

今天给大家推荐三个我认为不错的项目

(一)手撸STL

STL是C++的重要组件,C++开发几乎没有不使用STL的,然而光会用是不够的,还需要明白它的实现原理。

智能指针 vector array stack queue deque map set string 这些常用的数据结构最好自己都实现一遍。

水平高的可以直接参考gcc源码(https://github.com/gcc-mirror/gcc)

(二)ThreadPool

一个简单的 C++11 线程池实现,只有一个头文件,代码加起来不到 100 行。

GitHub 地址:https://github.com/progschj/ThreadPool

(三)sudoku

C++ 实现的命令行数独游戏。600 余行代码,初学者也可以轻松学习。

GitHub 地址:https://github.com/mayerui/sudoku

(四)sTinytetris

Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。

GitHub 地址:https://github.com/taylorconor/tinytetris

(五)MyTinySTL

当你学习完 C++ 的“书本”知识后,是不是有些手痒了呢?MyTinySTL 这个注释详细、实践夯实基础的项目便是你 C++ 学习之旅的下一站。作为新手练习用途,MyTinySTL 的作者 Alinshans 用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合 C++ 新手来实践一番。

GitHub 地址:https://github.com/Alinshans/MyTinySTL

(六)C-Plus-Plus

C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。

GitHub 地址:https://github.com/TheAlgorithms/C-Plus-Plus

(七)calculator

微软开源的 Windows 系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。

GitHub 地址:https://github.com/microsoft/calculator

(八)workflow

workflow 是搜狗公司的服务器引擎,搜狗几乎所有的后端 C++ 服务和其他几十家公司都在使用这个引擎,每日处理超百亿请求。不单网络、磁盘 IO、CPU 计算等,workflow 着眼于所有异步资源都尽可能全部调起。使用 workflow,你可以轻松搭建后端服务器(如 HTTP Server),可以轻松高效地发起客户端请求(支持 HTTP、Redis、Mysql、Websocket 和 Kafka 协议)。

GitHub 地址:https://github.com/sogou/workflow

(九)jwEngine

一个跨平台、轻量级、支持 C++ 和 Lua 的 Web 框架。支持 TCP、KCP、WebSocket、HTTP 等协议,底层采用 libuv 异步 IO 提高并发,避免多线程上下文切换开销和破坏代码美感,网络部分和逻辑部分使用一个主事件循环驱动。支持 Lua 提高开发效率,适用于小型游戏开发。

GitHub 地址:https://github.com/jwcpp/jwEngine

粉丝福利, 免费领取C/C++ 开发学习资料包、技术视频/项目代码,1000道大厂面试题,内容包括(C++基础,网络编程,数据库,中间件,后端开发/音视频开发/Qt开发/游戏开发/Linuxn内核等进阶学习资料和最佳学习路线)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有哪些挣钱软件一天能赚几十元?盘点十个能长期做下去的挣钱软件

在这个信息爆炸的时代,每个人都在寻找快速赚钱的秘诀。很多人做兼职副业的目标并不是获得很大的成功,大部分人一天能赚几十就心满意足了。 今天,我要带你一探究竟,揭秘那些能让你日赚几十元的挣钱软件。准备好了吗?让我…

单枪匹马月入17万美元:数字游民Pieter Levels如何成就商业传奇

了解数字游民的应该都听说过 Pieter Levels,可以说他是数字游民的先驱人物。 他在推特上拥有超过43万的粉丝,仅凭一台笔记本电脑就连续建立了多个高盈利网站,光是推特主页上展示的比较新的几个网站,每月收入加起来就高达 17.6 万…

Vulnhub项目:THE PLANETS: MERCURY

1、靶场地址 The Planets: Mercury ~ VulnHubThe Planets: Mercury, made by SirFlash. Download & walkthrough links are available.https://vulnhub.com/entry/the-planets-mercury,544/ 这好像是个系列的,关于星球系列,之前还做过一个地球的&a…

STM32-15-DMA

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU STM32-14-FSMC_LCD 文章目录 STM…

[原创][Delphi多线程]TThreadedQueue的经典使用案例.

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delph…

解读信创产业根基,操作系统发展历程

信创产业根基之一操作系统 操作系统是一个关键的控制程序,负责协调、管理和控制计算机硬件和软件资源。作为硬件的首要软件扩展,它位于裸机与用户之间,充当了两者之间的桥梁。通过其核心程序,操作系统高效地管理着系统中的各类资源…

有哪些兼职软件一天能赚几十元?盘点十个能长期做下去的挣钱软件

在当今这个信息泛滥的时代,众人纷纷寻求迅速致富的捷径。许多人在从事兼职或副业时,并不期望取得巨大的成就,只要每天能额外收入数十元,便已心满意足。 今天,我将带领大家深入探究,揭开那些隐藏在日常生活…

【小海实习日记】Git使用规范

1.Git使用流程 1.1 从master分支拉一个分支,命名要符合规范且清晰。 1.2 commit到本地,push 到远端。 1.3 在Gitlab创建MR,选择develp分支。 1.4 如果要修改的话,先把Gitlab上的MR修改为Draft(修改态),然后在本地修改代…

9.1.1 简述目标检测领域中的单阶段模型和两阶段模型的性能差异及其原因

9.1目标检测 场景描述 目标检测(Object Detection)任务是计算机视觉中极为重要的基础问题,也是解决实例分割(Instance Segmentation)、场景理解(Scene Understanding)、目标跟踪(Ob…

subline text3安装numpy,scipy,matplotlib,pandas,sklearn,ipynb

1,numpy(基础数值算法) 安装,要是在cmd直接安装到最后会报错, import numpy as np ModuleNotFoundError: No module named numpy 直接进入python环境,输入python -m pip install numpy就不会报错…

云端数据提取:安全、高效地利用无限资源

在当今的大数据时代,企业和组织越来越依赖于云平台存储和处理海量数据。然而,随着数据的指数级增长,数据的安全性和高效的数据处理成为了企业最为关心的议题之一。本文将探讨云端数据安全的重要性,并提出一套既高效又安全的数据提…

浅测 长亭雷池 WAF “动态防护”

本文首发于 Anyeの小站 前言 雷池 WAF 社区版的更新速度是真快啊,几乎一周一个小版本,俩月一个大版本,攻城狮们真的狠啊,没法测了。 废话不多说,前两天看到了 这篇文章,对雷池的“动态防护”功能挺感兴趣…

去掉el-table表头右侧类名是gutter,width=17px的空白区域(包括表头样式及表格奇偶行样式和表格自动滚动)

代码如下&#xff1a; <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…

Scrum团队在迭代中如何处理计划外的工作

认为 Scrum 团队不做计划其实是一个误区&#xff0c;实际上很多 Scrum 团队在冲刺计划会议以及在细化工作项时均会进行详细规划。此外&#xff0c;他们还会创建一个路线图&#xff0c;以便显示他们在多个冲刺中的计划。 Scrum 团队需要经常进行计划&#xff0c;以便在不断变化…

混合动力电动汽车介绍(二)

接续前一章内容&#xff0c;本篇文章介绍混合动力汽车串联、并联和混联的系统组成和工作原理。 一、串联混合动力电动汽车的系统组成和工作原理 上图为串联混合动力电动汽车的结构简图。汽车由电动机-发电机驱动行驶&#xff0c;电机控制器的动力来自油箱-发动机-发电机-发电机…

基于Spring Boot框架的分页查询和文件上传

分页查询 分析 要想从数据库中进行分页查询&#xff0c;我们要使用LIMIT关键字&#xff0c;格式为&#xff1a;limit 开始索引 每页显示的条数 假设一页想展示10条数据 查询第1页数据的SQL语句是&#xff1a; select * from emp limit 0,10; 查询第2页数据的SQL语句是&…

6、架构-服务端缓存

为系统引入缓存之前&#xff0c;第一件事情是确认系统是否真的需要缓 存。从开发角度来说&#xff0c;引入缓存会提 高系统复杂度&#xff0c;因为你要考虑缓存的失效、更新、一致性等问题&#xff1b;从运维角度来说&#xff0c;缓存会掩盖一些缺 陷&#xff0c;让问题在更久的…

npm彻底清理缓存

在使用npm过程中&#xff0c;肯定会遇到清缓存的情况&#xff0c;网上的命令一般为 npm cache clear --force有时笔者在清理缓存之后npm install依然失败&#xff0c;仔细发现&#xff0c;执行该命令之后npm报了一个警告 npm WARN using --force Recommended protections dis…

代码随想录算法训练营第27天|● 39. 组合总和● 40.组合总和II● 131.分割回文串

组合总和 题目链接 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution {public List<List<Integer>> res new ArrayList<>();public List<Integer> list new ArrayList<>();public int sum 0;/**…

LoadRunner 录制脚本时提示无Internet访问/加载慢,如何解决?

LoadRunner 录制脚本时提示无Internet访问/加载慢&#xff0c;如何解决&#xff1f; 在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问&#xff0c;这是如下图&#xff1a; 翻译中文如下&#xff1a; 这里&#xff0c;我认为大家应该都已经点过yes了&#xff0c;但是…