Light-City / CPlusPlusThings
C++那些事
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing Light-City/CPlusPlusThings in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
Preview- C++ 那些事
C++ 那些事
感谢各位对《C++ 那些事》的支持,现将内容也同步至B站,以视频的方式展示,可以打开网站直接阅读~欢迎大家 star、转发、PR。
在线个人博客:光城的实验室
在线学习网站:C++那些事
- 中文名:C++ 那些事
- 英文名:Stories About C Plus Plus
这是一个适合初学者从<u>入门到进阶</u>的仓库,解决了<u>面试者与学习者</u>想要<u>深入 C++</u> 及如何<u>入坑 C++</u> 的问题。除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的 C++ 学习从入门到进阶提升的仓库。
重磅项目
推出一系列重磅项目,带大家实战学习C++,配合本开源项目学习,成长飞快!
直通点:戳这里
关于作者
公众号已开放两大入口,分别是专辑与菜单,可以直接在微信公众号上阅读《C++ 那些事》内容,配上该仓库的代码,将会非常的爽,建议大家关注一波。
个人公众号:guangcity
或者扫下面的二维码,欢迎大家反馈及 C++ 交流,本人在微信创建了 C++ 那些事交流群,优质的 C++ 资源交流区,期待大家关注上面公众号,点击公众号右下角->联系我,拉你入群。
关注我
如果觉得不错,关注我吧~
<table> <tbody> <tr> <th align="center" style="height=200 width="200"> <img src="./img/cpp.jpg" height="200" width="200" ><br> 星球 </th> <th align="center" style="height=200 width="200"> <img src="./img/wechat.jpg" height="200" width="200" ><br> 微信公众号 </th> </tr> </tbody> </table>项目运行
方式1: vscode + bazel
方式2: docker
新推出免开发环境,docker环境,大家可以pull下面镜像:
docker pull xingfranics/cplusplusthings:latest
方式3: g++
视频学习本项目
第三期:手把手共读HashTable,彻底搞懂C++ STL
第四期:手把手共读STL之enable_shared_from_this
第五期:手把手共读STL之线程,从C++11 thread到C++20 jthread
第六期:手把手共读STL之共读condition_variable、condition_variable_any
飞书知识库
基础进阶
const那些事static那些事this那些事inline那些事sizeof那些事- 函数指针那些事
- 纯虚函数和抽象类那些事
vptr_vtable那些事virtual那些事volatile那些事assert那些事- 位域那些事
extern那些事struct那些事struct与class那些事union那些事c实现c++多态那些事explicit那些事friend那些事using那些事::那些事enum那些事decltype那些事- 引用与指针那些事
- 宏那些事
实战系列
10 日狂练
重点实战练习
C++2.0 新特性
概况
C++2.0 是一个简称,意为「现代 C++」,包括 C++11/14/17/20。
C++11 新特性
-
Spaces in Template Expressions
vector<list<int> > //ok in each C++ version vector<list<int>> // before c++ 11 error error: ‘>>’ should be ‘> >’ within a nested template argument list,c++11后可以正常通过 -
for(decl:col) { statement } -
如果你自行定义了一个
ctor, 那么编译器就不会给你一个default ctor如果强制加上=default, 就可以重新获得并使用default ctor. -
Alias(化名) Template (template typedef)
-
容器-结构与分类
- (1) 序列式容器包括:
array(C++2.0 新引入),vector,deque,list,forward_list(C++2.0 新引入) - (2) 关联式容器包括:
set/multiset,map/multimap - (3) 无序容器(C++2.0 新引入,更换原先
hash_xxx为unordered_xxx)包括:unordered_map/unordered_multimap,unordered_set/unordered_multiset
- (1) 序列式容器包括:
-
学习资料:https://www.bilibili.com/video/av51863195?from=search&seid=3610634846288253061
C++14/17/20
待更新...
设计模式
STL 源码剖析
STL 源码剖析:gcc 4.9.1
- array
- deque
- queue and stack
- list
- vector
- typename
- traits
- iterator
- 谈谈 STL 设计之 EBO 优化
- rb_tree
- set and multiset
- map and multimap
- hashtable
- myhashtable
- unordered_map
并发编程
C++ Concurrency in Action
学习资料:https://downdemo.gitbook.io/cpp-concurrency-in-action-2ed/
多线程与多进程
Threading In C++
学习自:
https://www.youtube.com/watch?v=eZ8yKZo-PGw&list=PLk6CEY9XxSIAeK-EAh3hB4fgNvYkYmghp&index=4
C++ 惯用法
你最喜欢的 c++ 编程风格惯用法是什么?
学习课程
极客时间《现代 C++ 实战 30 讲》
- 堆、栈、RAII:C++ 里该如何管理资源?
- 自己动手,实现 C++ 的智能指针
- 右值和移动究竟解决了什么问题?
- 容器 1
- 容器 2
- 异常
- 字面量、静态断言和成员函数说明符
- 是不是应该返回对象?
- 编译期多态:泛型编程和模板入门
- 译期能做些什么?一个完整的计算世界
- SFINAE:不是错误的替换失败是怎么回事?
- constexpr:一个常态的世界
- 函数对象和 lambda:进入函数式编程
- 内存模型和 atomic:理解并发的复杂性
工具篇
容器快捷输出工具
对吴老师的代码进行了修改,点击此处直通代码
输入:
map<int, int> mp{
{1, 1},
{2, 4},
{3, 9}};
cout << mp << endl;
输出结果显示:
{ 1 => 1, 2 => 4, 3 => 9 }
像 Python 一样简单输出(Jupyter Notebook)
观察编译过程变化
C++ 的 Debug 工具 dbg-macro
在 Linux 上的 Debug 工具 rr - 拥有回到过去的能力
拓展部分
一些问题
贡献者
| 贡献人 | 地址 |
|---|---|
| 光城 | https://github.com/Light-City |
| ChungZH | https://github.com/ChungZH |
| xliu79 | https://github.com/xliu79 |