[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1062":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},1062,"CPlusPlusThings","Light-City\u002FCPlusPlusThings","Light-City","C++那些事","https:\u002F\u002Flight-city.github.io\u002Fstories_things\u002F",null,"C++",43225,8835,558,7,0,5,25,112,18,99.5,false,"master",true,[26,27,28,29],"cplusplus","cpp","cpp11","cpp14","2026-06-12 04:00:07","\n- [C++ 那些事](#c-那些事)\n    - [重磅项目](#重磅项目)\n    - [关于作者](#关于作者)\n    - [项目运行](#项目运行)\n      - [方式1: vscode + bazel](#方式1-vscode--bazel)\n      - [方式2: docker](#方式2-docker)\n      - [方式3: g++](#方式3-g)\n    - [视频学习本项目](#视频学习本项目)\n    - [飞书知识库](#飞书知识库)\n    - [基础进阶](#基础进阶)\n    - [实战系列](#实战系列)\n      - [10 日狂练](#10-日狂练)\n      - [重点实战练习](#重点实战练习)\n    - [C++2.0 新特性](#c20-新特性)\n      - [概况](#概况)\n      - [C++11 新特性](#c11-新特性)\n      - [C++14\u002F17\u002F20](#c141720)\n    - [设计模式](#设计模式)\n    - [STL 源码剖析](#stl-源码剖析)\n    - [并发编程](#并发编程)\n      - [C++ Concurrency in Action](#c-concurrency-in-action)\n      - [多线程与多进程](#多线程与多进程)\n        - [Threading In C++](#threading-in-c)\n    - [C++ 惯用法](#c-惯用法)\n        - [你最喜欢的 c++ 编程风格惯用法是什么?](#你最喜欢的-c-编程风格惯用法是什么)\n    - [学习课程](#学习课程)\n      - [极客时间《现代 C++ 实战 30 讲》](#极客时间现代-c-实战-30-讲)\n    - [工具篇](#工具篇)\n      - [容器快捷输出工具](#容器快捷输出工具)\n      - [像 Python 一样简单输出（Jupyter Notebook）](#像-python-一样简单输出jupyter-notebook)\n      - [观察编译过程变化](#观察编译过程变化)\n      - [C++ 的 Debug 工具 dbg-macro](#c-的-debug-工具-dbg-macro)\n      - [在 Linux 上的 Debug 工具 rr - 拥有回到过去的能力](#在-linux-上的-debug-工具-rr---拥有回到过去的能力)\n    - [拓展部分](#拓展部分)\n      - [一些问题](#一些问题)\n    - [贡献者](#贡献者)\n\n# C++ 那些事\n\n\n感谢各位对《C++ 那些事》的支持，现将内容也同步至B站，以视频的方式展示，可以打开网站直接阅读~欢迎大家 star、转发、PR。\n\n在线个人博客：[光城的实验室](https:\u002F\u002Flight-city.github.io\u002F)\n\n在线学习网站：[C++那些事](https:\u002F\u002Flight-city.github.io\u002Fstories_things\u002F)\n\n- 中文名：**C++ 那些事**\n- 英文名：**Stories About C Plus Plus**\n\n这是一个适合初学者从\u003Cu>**入门到进阶**\u003C\u002Fu>的仓库，解决了\u003Cu>**面试者与学习者**\u003C\u002Fu>想要\u003Cu>**深入 C++**\u003C\u002Fu> 及如何\u003Cu>**入坑 C++**\u003C\u002Fu> 的问题。除此之外，本仓库拓展了更加深入的源码分析，多线程并发等的知识，是一个比较全面的 C++ 学习从入门到进阶提升的仓库。\n\n\n### 重磅项目\n\n推出一系列重磅项目，带大家实战学习C++，配合本开源项目学习，成长飞快!\n\n直通点：[戳这里](.\u002Fproj\u002FREADME.md)\n\n### 关于作者\n\n公众号已开放两大入口，分别是专辑与菜单，可以直接在微信公众号上阅读《C++ 那些事》内容，配上该仓库的代码，将会非常的爽，建议大家关注一波。\n\n个人公众号：guangcity\n\n或者扫下面的二维码，欢迎大家反馈及 C++ 交流，本人在微信创建了 C++ 那些事交流群，优质的 C++ 资源交流区，期待大家关注上面公众号，点击公众号右下角->联系我，拉你入群。\n\n---\n\n>关注我\n\n如果觉得不错，关注我吧~\n\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Cth align=\"center\" style=\"height=200 width=\"200\">\n          \u003Cimg src=\".\u002Fimg\u002Fcpp.jpg\" height=\"200\" width=\"200\" >\u003Cbr>\n          星球\n      \u003C\u002Fth>\n      \u003Cth align=\"center\" style=\"height=200 width=\"200\">\n          \u003Cimg src=\".\u002Fimg\u002Fwechat.jpg\" height=\"200\" width=\"200\" >\u003Cbr>\n          微信公众号\n      \u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n### 项目运行\n\n\n#### 方式1: vscode + bazel\n\n#### 方式2: docker\n\n新推出免开发环境，docker环境，大家可以pull下面镜像：\n\n```\ndocker pull xingfranics\u002Fcplusplusthings:latest\n```\n#### 方式3: g++\n\n\n### 视频学习本项目\n\n[第一期：Step By Step上手编译本项目](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Rv4y1H7LB\u002F?vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第二期：免开发环境docker](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1oz4y1a7Pu\u002F?vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第三期：手把手共读HashTable，彻底搞懂C++ STL](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1o8411U7vy\u002F?vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第四期：手把手共读STL之enable_shared_from_this](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1du4y1w7Mg\u002F?spm_id_from=333.788&vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第五期：手把手共读STL之线程，从C++11 thread到C++20 jthread](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1DH4y1g7gS\u002F?vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第六期：手把手共读STL之共读condition_variable、condition_variable_any](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV13b421b7Am\u002F?spm_id_from=333.999.0.0&vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第七期：手把手共读STL之Mutex](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1xm42157pq\u002F?spm_id_from=333.999.0.0&vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n[第八期：手把手共读STL之RAII Lock](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Ls421g7iq\u002F?spm_id_from=333.788&vd_source=bb6532dcd5b1d6b26125da900adb618e)\n\n### 飞书知识库\n\n[互联网大厂面试实录](https:\u002F\u002Fhmpy6adnp5.feishu.cn\u002Fdocx\u002FOitBdRB4KozIhTxQt7Ec7iFDnkc)\n\n[拿下offer之必备面经](https:\u002F\u002Fhmpy6adnp5.feishu.cn\u002Fdocx\u002FB1aCdVTUgoyJGYxtWV7cdvgRnxv)\n\n\n### 基础进阶\n\n- [`const` 那些事](.\u002Fbasic_content\u002Fconst)\n- [`static` 那些事](.\u002Fbasic_content\u002Fstatic)\n- [`this` 那些事](.\u002Fbasic_content\u002Fthis)\n- [`inline` 那些事](.\u002Fbasic_content\u002Finline)\n- [`sizeof` 那些事](.\u002Fbasic_content\u002Fsizeof)\n- [函数指针那些事](.\u002Fbasic_content\u002Ffunc_pointer)\n- [纯虚函数和抽象类那些事](.\u002Fbasic_content\u002Fabstract)\n- [`vptr_vtable` 那些事](.\u002Fbasic_content\u002Fvptr_vtable)\n- [`virtual` 那些事](.\u002Fbasic_content\u002Fvirtual)\n- [`volatile` 那些事](.\u002Fbasic_content\u002Fvolatile)\n- [`assert` 那些事](.\u002Fbasic_content\u002Fassert)\n- [位域那些事](.\u002Fbasic_content\u002Fbit)\n- [`extern` 那些事](.\u002Fbasic_content\u002Fextern)\n- [`struct` 那些事](.\u002Fbasic_content\u002Fstruct)\n- [`struct` 与 `class` 那些事](.\u002Fbasic_content\u002Fstruct_class)\n- [`union` 那些事](.\u002Fbasic_content\u002Funion)\n- [`c` 实现 `c++` 多态那些事](.\u002Fbasic_content\u002Fc_poly)\n- [`explicit` 那些事](.\u002Fbasic_content\u002Fexplicit)\n- [`friend` 那些事](.\u002Fbasic_content\u002Ffriend)\n- [`using` 那些事](.\u002Fbasic_content\u002Fusing)\n- [`::` 那些事](.\u002Fbasic_content\u002Fmaohao)\n- [`enum` 那些事](.\u002Fbasic_content\u002Fenum)\n- [`decltype` 那些事](.\u002Fbasic_content\u002Fdecltype)\n- [引用与指针那些事](.\u002Fbasic_content\u002Fpointer_refer)\n- [宏那些事](.\u002Fbasic_content\u002Fmacro)\n\n### 实战系列\n\n#### [10 日狂练](.\u002Fpractical_exercises\u002F10_day_practice)\n\n- [day1-基本语法](practical_exercises\u002F10_day_practice\u002Fday1)\n\n- [day2-递归、结构体、枚举、静态变量等](practical_exercises\u002F10_day_practice\u002Fday2)\n\n- [day3-函数1](practical_exercises\u002F10_day_practice\u002Fday3)\n\n- [day4-函数2](practical_exercises\u002F10_day_practice\u002Fday4)\n\n- [day5-继承多态](practical_exercises\u002F10_day_practice\u002Fday5)\n\n- [day6-虚函数与抽象类](practical_exercises\u002F10_day_practice\u002Fday6)\n\n- [day7-运算符重载](practical_exercises\u002F10_day_practice\u002Fday7)\n\n- [day8-模版与STL](practical_exercises\u002F10_day_practice\u002Fday8)\n\n- [day9-异常](practical_exercises\u002F10_day_practice\u002Fday9)\n\n- [day10-文件与流](practical_exercises\u002F10_day_practice\u002Fday10)\n\n#### [重点实战练习](.\u002Fpractical_exercises\u002Fkey_exercises\u002F)\n\n- [中括号重载.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fbracket_overloading.cpp)\n\n- [时钟++运算符重载.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fclock.cpp)\n\n- [运算符重载之强制转换.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Foperator_cast.cpp)\n\n- [重载圆括号的时钟.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Foperator_circle.cpp)\n\n- [函数模板.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Ffunc_temp.cpp)\n\n- [动态数组.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Farray.cpp)\n\n- [字典插入与查找.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fmap_insert_look.cpp)\n\n- [异常捕获.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Ftry.cpp)\n\n- [类模板之栈.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fstack.cpp)\n\n- [类模板特化之数组.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Farray_template.cpp)\n\n- [继承与封装.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Foverride.cpp)\n\n- [读写文件综合题.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fread_file.cpp)\n\n- [输入输出运算符重载.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fio_operator_overload.cpp)\n\n- [输入输出重载.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Fio_operator.cpp)\n\n- [输出格式.cpp](.\u002Fpractical_exercises\u002Fkey_exercises\u002Foutput.cpp)\n\n\n### [C++2.0 新特性](.\u002Fcpp2.0)\n\n#### 概况\n\nC++2.0 是一个简称，意为「现代 C++」，包括 C++11\u002F14\u002F17\u002F20。\n\n#### [C++11 新特性](.\u002Fcpp2.0\u002Fcpp11)\n\n- [Variadic Templates](.\u002Fcpp2.0\u002Fcpp11\u002Fvariadic)\n\n- Spaces in Template Expressions\n\n  ```cpp\n  vector\u003Clist\u003Cint> > \u002F\u002Fok in each C++ version\n  vector\u003Clist\u003Cint>> \u002F\u002F before c++ 11 error error: ‘>>’ should be ‘> >’ within a nested template argument list,c++11后可以正常通过\n  ```\n\n- [nullptr and nullptr_t](.\u002Fcpp2.0\u002Fcpp11\u002Fnullptr.cpp)\n\n- [Automatic Type Deduction with auto](.\u002Fcpp2.0\u002Fcpp11\u002Fauto.cpp)\n\n- [Uniform Initialization ](.\u002Fcpp2.0\u002Fcpp11\u002Funiform_initialization.cpp)\n\n- [initializer_list](.\u002Fcpp2.0\u002Fcpp11\u002Finitializer.cpp)\n\n- [explicit for ctors taking more than one argument](.\u002Fcpp2.0\u002Fcpp11\u002Fexplicit.cpp)\n\n- [range-based for statement](.\u002Fcpp2.0\u002Fcpp11\u002Fauto.cpp)\n\n  ```cpp\n  for(decl:col) {\n      statement\n  }\n  ```\n\n- [=default,=delete](.\u002Fcpp2.0\u002Fcpp11\u002Fdefault_delete.cpp)\n\n  如果你自行定义了一个 `ctor`, 那么编译器就不会给你一个 `default ctor`\n  如果强制加上 `=default`, 就可以重新获得并使用 `default ctor`.\n\n- Alias(化名) Template (template typedef)\n\n  - [alias.cpp](.\u002Fcpp2.0\u002Fcpp11\u002Falias.cpp)\n  - [template_template.cpp](.\u002Fcpp2.0\u002Fcpp11\u002Ftemplate_template.cpp)\n\n- [template template parameter](.\u002Fcpp2.0\u002Ftemplate_template.cpp)\n\n- [type alias](.\u002Fcpp2.0\u002Fcpp11\u002Ftype_alias.cpp)\n\n- [noexcept](.\u002Fcpp2.0\u002Fcpp11\u002Fnoexcept.cpp)\n\n- [override](.\u002Fcpp2.0\u002Fcpp11\u002Foverride.cpp)\n\n- [final](.\u002Fcpp2.0\u002Fcpp11\u002Ffinal.cpp)\n\n- [decltype](.\u002Fcpp2.0\u002Fcpp11\u002Fdecltype.cpp)\n\n- [lambda](.\u002Fcpp2.0\u002Fcpp11\u002Flambda.cpp)\n\n- [Rvalue reference](.\u002Fcpp2.0\u002Fcpp11\u002Frvalue.cpp)\n\n- [move aware class](.\u002Fcpp2.0\u002Fcpp11\u002Fmove.cpp)\n\n- 容器-结构与分类\n\n  - (1) 序列式容器包括：`array`(C++2.0 新引入),`vector`,`deque`,`list`,`forward_list`(C++2.0 新引入)\n  - (2) 关联式容器包括：`set\u002Fmultiset`,`map\u002Fmultimap`\n  - (3) 无序容器(C++2.0 新引入,更换原先 `hash_xxx` 为 `unordered_xxx`)包括：`unordered_map\u002Funordered_multimap,unordered_set\u002Funordered_multiset`\n\n- [Hash Function](.\u002Fcpp2.0\u002Fcpp11\u002Fhash.cpp)\n\n- [tuple](.\u002Fcpp2.0\u002Fcpp11\u002Ftuple.cpp)\n\n  学习资料：https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002Fav51863195?from=search&seid=3610634846288253061\n\n#### C++14\u002F17\u002F20\n\n待更新...\n\n### 设计模式\n\n- [单例模式](.\u002Fdesign_pattern\u002Fsingleton)\n- [生产消费者模式](.\u002Fdesign_pattern\u002Fproducer_consumer)\n\n### [STL 源码剖析](.\u002Fsrc_analysis\u002Fstl)\n\n**STL 源码剖析：gcc 4.9.1**\n\n- [array](.\u002Fsrc_analysis\u002Fstl\u002Farray.md)\n- [deque](.\u002Fsrc_analysis\u002Fstl\u002Fdeque.md)\n- [queue and stack](.\u002Fsrc_analysis\u002Fstl\u002Fqueue_stack.md)\n- [list](.\u002Fsrc_analysis\u002Fstl\u002Flist.md)\n- [vector](.\u002Fsrc_analysis\u002Fstl\u002Fvector.md)\n- [typename](.\u002Fsrc_analysis\u002Fstl\u002Ftypename.md)\n- [traits](.\u002Fsrc_analysis\u002Fstl\u002Ftraits.md)\n- [iterator](.\u002Fsrc_analysis\u002Fstl\u002Fiterator.md)\n- [谈谈 STL 设计之 EBO 优化](.\u002Fsrc_analysis\u002Fstl\u002F谈谈STL设计之EBO优化.md)\n- [rb_tree](.\u002Fsrc_analysis\u002Fstl\u002Frb_tree.md)\n- [set and multiset](.\u002Fsrc_analysis\u002Fstl\u002Fset_multiset.md)\n- [map and multimap](.\u002Fsrc_analysis\u002Fstl\u002Fmap_multimap.md)\n- [hashtable](.\u002Fsrc_analysis\u002Fstl\u002Fhashtable.md)\n- [myhashtable](.\u002Fsrc_analysis\u002Fstl\u002Fmyhashtable.md)\n- [unordered_map](.\u002Fsrc_analysis\u002Fstl\u002Funordered_map.md)\n\n### [并发编程](.\u002Fconcurrency)\n\n#### C++ Concurrency in Action\n\n- [第一章](.\u002Fconcurrency\u002Fconcurrency_v1\u002Fchapter1)\n- [第二章](.\u002Fconcurrency\u002Fconcurrency_v1\u002Fchapter2)\n\n学习资料：https:\u002F\u002Fdowndemo.gitbook.io\u002Fcpp-concurrency-in-action-2ed\u002F\n\n#### 多线程与多进程\n\n##### Threading In C++\n\n- [介绍](.\u002Fconcurrency\u002FThreading_In_CPlusPlus\u002F1.thread)\n- [创建线程的五种类型](.\u002Fconcurrency\u002FThreading_In_CPlusPlus\u002F2.create_type)\n- [Join 与 Detachs](.\u002Fconcurrency\u002FThreading_In_CPlusPlus\u002F3.join_detach)\n- [mutex in C++ Threading](.\u002Fconcurrency\u002FThreading_In_CPlusPlus\u002F4.mutex)\n\n> 学习自：\n>\n> https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=eZ8yKZo-PGw&list=PLk6CEY9XxSIAeK-EAh3hB4fgNvYkYmghp&index=4\n\n### [C++ 惯用法](.\u002FcodingStyleIdioms)\n\n##### 你最喜欢的 c++ 编程风格惯用法是什么?\n\n- [1.类初始化列表](.\u002FcodingStyleIdioms\u002F1_classInitializers)\n- [2.枚举类替换命名空间](.\u002FcodingStyleIdioms\u002F2_enumclass_namespace)\n- [3.RAII (资源获取即初始化)](.\u002FcodingStyleIdioms\u002F3_RAII)\n- [4.copy and swap](.\u002FcodingStyleIdioms\u002F4_copy-swap)\n- [5.pImpl (指针指向具体实现)](.\u002FcodingStyleIdioms\u002F5_pImpl)\n\n### 学习课程\n\n#### [极客时间《现代 C++ 实战 30 讲》](https:\u002F\u002Ftime.geekbang.org\u002Fchannel\u002Fhome)\n\n- [堆、栈、RAII：C++ 里该如何管理资源？](.\u002Flearn_class\u002Fmodern_cpp_30\u002FRAII)\n  - [堆](.\u002Flearn_class\u002Fmodern_++_30\u002FRAII\u002Fheap.cpp)\n  - [栈](.\u002Flearn_class\u002Fmodern_cpp_30\u002FRAII\u002Fstack.cpp)\n  - [RAII](.\u002Flearn_class\u002Fmodern_cpp_30\u002FRAII\u002FRAII.cpp)\n- [自己动手，实现 C++ 的智能指针](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fsmart_ptr)\n  - [auto_ptr、scope_ptr](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fsmart_ptr\u002Fauto_scope.cpp)\n  - [unique_ptr](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fsmart_ptr\u002Funique_ptr.cpp)\n  - [shared_ptr](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fsmart_ptr\u002Fshared_ptr.cpp)\n- [右值和移动究竟解决了什么问题？](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference)\n  - [左值与右值](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference\u002Freference.cpp)\n  - [延长声明周期](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference\u002Flifetime.cpp)\n  - [引用折叠](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference\u002Fcollapses.cpp)\n  - [完美转发](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference\u002Fforward.cpp)\n  - [不要返回本地变量的引用](.\u002Flearn_class\u002Fmodern_cpp_30\u002Freference\u002Fdon'treturnReference.cpp)\n- [容器 1](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fcontainer1)\n- [容器 2](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fcontainer2)\n- [异常](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fexception)\n- [字面量、静态断言和成员函数说明符](.\u002Flearn_class\u002Fmodern_cpp_30\u002FliteralAssert)\n- [是不是应该返回对象？](.\u002Flearn_class\u002Fmodern_cpp_30\u002FreturnObj)\n- [编译期多态：泛型编程和模板入门](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fcompilerpoly)\n- [译期能做些什么？一个完整的计算世界](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fcompilercompute)\n- [SFINAE：不是错误的替换失败是怎么回事?](.\u002Flearn_class\u002Fmodern_cpp_30\u002FSFINAE)\n- [constexpr：一个常态的世界](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fconstexpr)\n- [函数对象和 lambda：进入函数式编程](.\u002Flearn_class\u002Fmodern_cpp_30\u002FfunctionLambda)\n- [内存模型和 atomic：理解并发的复杂性](.\u002Flearn_class\u002Fmodern_cpp_30\u002Fmemorymodel_atomic)\n\n### 工具篇\n\n#### [容器快捷输出工具](.\u002Ftool\u002Foutput)\n\n对吴老师的代码进行了修改，[点击此处直通代码](.\u002Ftool\u002Foutput\u002Foutput_container.h)\n\n输入：\n\n```cpp\nmap\u003Cint, int> mp{\n            {1, 1},\n            {2, 4},\n            {3, 9}};\n    cout \u003C\u003C mp \u003C\u003C endl;\n```\n\n输出结果显示：\n\n```cpp\n{ 1 => 1, 2 => 4, 3 => 9 }\n```\n\n#### 像 Python 一样简单输出（Jupyter Notebook）\n\n- [像 Python 一样玩 C\u002FC++](.\u002Ftool\u002F像Python一样玩CC++.md)\n\n#### 观察编译过程变化\n\n-  [https:\u002F\u002Fcppinsights.io](https:\u002F\u002Fcppinsights.io\u002F)\n\n#### C++ 的 Debug 工具 dbg-macro\n\n- [C++ 的 Debug 工具 dbg-macro](.\u002Ftool\u002FC++的Debug工具dbg-macro.md)\n\n#### 在 Linux 上的 Debug 工具 rr - 拥有回到过去的能力\n- [用 rr 来进行 debug](.\u002Ftool\u002F用rr来进行debug.md)\n\n### 拓展部分\n\n#### 一些问题\n\n- [C++ 中如何将 string 类型转换为 int 类型？](.\u002Fextension\u002Fsome_problem\u002Fstring_int.md)\n\n### 贡献者\n\n\n\n| 贡献人  | 地址                          |\n| ------- | ----------------------------- |\n| 光城    | https:\u002F\u002Fgithub.com\u002FLight-City |\n| ChungZH | https:\u002F\u002Fgithub.com\u002FChungZH    |\n| xliu79  | https:\u002F\u002Fgithub.com\u002Fxliu79     |\n\n\n\n\n\n","Light-City\u002FCPlusPlusThings 是一个专注于 C++ 语言学习与实践的开源项目。该项目涵盖了从 C++ 基础到高级特性的全面教程，包括 C++11、C++14、C++17 和 C++20 的新特性介绍，设计模式解析，STL 源码剖析，以及并发编程等内容。此外，它还提供了多种项目运行方式（如使用 VSCode+Bazel、Docker 或 g++），并配有一系列实战项目和视频教程来帮助用户更好地理解和掌握 C++ 技术。非常适合 C++ 初学者入门及进阶学习，也适合需要提升 C++ 技能的开发者参考。",2,"2026-06-11 02:41:22","top_all"]