# cpp_study **Repository Path**: s314893771/cpp_study ## Basic Information - **Project Name**: cpp_study - **Description**: C++学习教程,总结 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-12-02 - **Last Updated**: 2024-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # C++学习,总结 ## 目录 - [C++](#c) - [基础](#基础) - [面向对象](#面向对象) - [STL](#stl) - [模板](#模板) - [并发](#并发) - [深度探索C++对象模型](#深度探索c对象模型) - [其他](#其他) - [网络](#网络) - [数据结构与算法](#数据结构与算法) - [数据结构](#数据结构) - [算法](#算法) - [设计模式](#设计模式) - [操作系统](#操作系统) - [Linux](#linux) - [数据库](#数据库) - [Redis](#redis) - [MongoDB](#mongodb) - [系统设计](#系统设计) - [常用框架](#常用框架) - [Qt](#qt) - [常用库](#常用库) - [Boost](#boost) - [Libevent](#libevent) - [Spdlog](#spdlog) - [Acl](#acl) - [Muduo](#muduo) - [高性能](#高性能) - [Hyperscan](#hyperscan) - [其它库](#其它库) - [cmdline](#cmdline) - [分布式](#分布式) - [RPC](#rpc) - [消息对列](#消息队列) - [必会工具](#必会工具) - [Git](#git) - [CMake](#cmake) - [Docker](#docker) - [资源](#资源) - [C++程序员必备书单](#c程序员必备书单) - [实战项目推荐](#实战项目推荐) - [Github](#github) ## C++ ### 基础 1. [变量和基本类型](docs/cpp/base/变量和基本类型.md) 2. [复合类型-引用和指针](docs/cpp/base/复合类型-引用和指针.md) 3. [const限定符](docs/cpp/base/const限定符.md) 4. [auto和decltype](docs/cpp/base/auto和decltype.md) 5. [表达式](docs/cpp/base/表达式.md) 6. [语句](docs/cpp/base/语句.md) 7. [函数](docs/cpp/base/函数.md) **基础知识点系统总结:** 1. **[C++ 基础知识](docs/cpp/base/C++基础知识.md)** 2. **[C++ 基础知识疑难点/易错点](docs/cpp/base/C++疑难点.md)** **重要知识点详解:** ### 面向对象 - [初识类](docs/cpp/class/类.md) - 封装 - 继承 - 多态 **[C++11新特性](docs/cpp/base/C++11新特性.md)** ### 运算符重载 ### 模板 ### STL 资料 - set集合 #### 迭代器 - [iterator_traits](docs/cpp/stl/iterator/traits.md) ### 并发 C++11并发与多线程 * [01.并发基本概念及实现,进程、线程基本概念](docs/cpp/multi_thread/01.并发基本概念.md) * [02.线程启动、结束,创建线程的多种方法,join、detach](docs/cpp/multi_thread/02.线程创建的多种方法.md) * [03.线程传参详解,detach大坑,成员函数做线程函数](docs/cpp/multi_thread/03.线程传参详解.md) ### 深度探索C++对象模型 ### 其他 ## 网络 ## 数据结构与算法 ### 数据结构 - [二叉树与红黑树](docs/data_structures-algorithms/二叉树与红黑树.md) ### 算法 - [排序](docs/data_structures-algorithms/排序.md) + 冒泡排序 + 简单选择排序 + 直接插入排序 + 希尔排序 + 归并排序 + 快速排序 - 查找 + [KMP算法](docs/data_structures-algorithms/KMP算法.md) - [几道常见的链表算法题](docs/data_structures-algorithms/几道常见的链表算法题.md) ## 设计模式 ## 操作系统 ### Linux - [开发中常用到的命令](docs/operating-system/Command.md) - [Shell 编程入门](docs/operating-system/Shell.md) - [进程/线程那些事](docs/operating-system/process.md) - NUMA系统架构 - [Linux内核源码](docs/operating-system/linux-kernel/index.md) ## 数据库 ### mysql * [mysql服务安装](docs/database/mysql/install.md) * [mysql C API链接池实现](docs/database/mysql/c-api-pool.md) ### Redis ### MongoDB - [mongodb-driver编译](docs/database/mongodb/build.md) ## 系统设计 ### 常用框架 #### Qt > One framework. One codebase. Any platform. > > > Everything you need for your entire software development life cycle. Qt is the fastest and smartest way to produce industry-leading software that users love. 官方网站: [查看QT教程](https://gitee.com/yanhai307/qt_study) ### 常用库 #### Boost > "...one of the most highly regarded and expertly designed C++ library projects in the world." > — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards 官方网站: [源码编译](docs/system-design/library/boost/build.md) [查看教程](docs/system-design/library/boost/README.md) #### Libevent > an event notification library 官方网站: 源码仓库: [源码编译](docs/system-design/library/libevent/build.md) #### Spdlog > Very fast, header-only/compiled, C++ logging library. 源码仓库: [源码编译](docs/system-design/library/spdlog/build.md) #### Acl > acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 etc。 源码仓库: [源码编译](docs/system-design/library/acl/build.md) #### Muduo > muduo 是一个基于 Reactor 模式的现代 C++ 网络库,它采用非阻塞 IO 模型,基于事件驱动和回调,原生支持多核多线程,适合编写 Linux 服务端多线程网络应用程序。 源码仓库: #### json库 json官方网站 ,里面列举了众多json库 ##### Jsoncpp > A C++ library for interacting with JSON. github: [安装jsoncpp](docs/system-design/library/jsoncpp/build.md) ##### JSON for Modern C++ github: [安装nlohmann_json](docs/system-design/library/nlohmann_json/build.md) ### 高性能 #### Hyperscan hyperscan是一款高性能的正则表达式匹配库, 它遵循libpcre库通用的正则表达式语法,拥有独立的C语言接口。 官方网站: 官方Github地址: arm(aarch64)版本源码: 安装步骤可参考: [源码编译](docs/system-design/library/hyperscan/build.md) 示例: - [关键字匹配](docs/system-design/library/hyperscan/keyword_match_engine.md) 更多文章: - Hyperscan的模式选择: - Hyperscan 5.0.0 新特性: #### DPDK ### 其它库 #### cmdline > A simple command line parser for C++ Github地址: #### cpp-httplib cpp-httplib是一个C++单文件头的跨平台HTTP/HTTPS库。它的设置非常简单,只需在代码中包含“httplib.h”文件即可。 Github地址: 安装步骤可参考: ### 分布式 #### RPC #### 消息队列 **RabbitMQ** **ZeroMQ** **Kafka** ## 必会工具 - Git - [CMake](docs/tools/cmake/cmake.md) - Docker ### 其他 - [构建工具 SCons](docs/tools/scons.md) - Vim常用操作 ## 资源 - C/C++中文版手册 https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5 - C/C++官方手册 https://cplusplus.com/ ### C++程序员必备书单 * 编程语言: * 语言基础: * 《C++ Primer》 * 数据结构: * 《数据结构与算法分析》C++版本;保持长期刷题的习惯 * 语言深入: * 《Effective C++》 * 《STL源码剖析》 * 计算机基础 * 算法: * 《算法》 * 《算法导论》 (难,长期翻阅) * 操作系统 * 《深入理解计算机系统》 * 《操作系统:精髓与设计原理》 * 《鸟哥的Linux私房菜》 * 《Linux内核设计与实现》 * 计算机网络: * 《计算机网络:自顶向下》 * 《TCP/IP详解 卷一 协议》 * 计算机组成原理: * 《计算机组成原理》 * 编译原理: * 《编译原理》(龙书),根据兴趣学习 * 技能深入: * 数据库: * 《数据库系统概念》 * 《MySql必知必会》 * 程序设计能力提升: * 《大话设计模式》 * 《重构-改善既有代码的设计》 * Linux进阶: * 《Unix网络编程》 * 《Unix环境高级编程》 * C++进阶: * 《深度探索C++对象模型》 ### 实战项目推荐 ### Github - [FreeNOS](docs/resources/github/freenos.md)