diff --git a/README.md b/README.md index f6202d4b..7ffe6e78 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ - [方式2: docker](#方式2-docker) - [方式3: g++](#方式3-g) - [视频学习本项目](#视频学习本项目) + - [飞书知识库](#飞书知识库) - [基础进阶](#基础进阶) - [实战系列](#实战系列) - [10 日狂练](#10-日狂练) @@ -109,6 +110,15 @@ docker pull xingfranics/cplusplusthings:latest [第三期:手把手共读HashTable,彻底搞懂C++ STL](https://www.bilibili.com/video/BV1o8411U7vy/?vd_source=bb6532dcd5b1d6b26125da900adb618e) +[第四期:手把手共读STL之enable_shared_from_this](https://www.bilibili.com/video/BV1du4y1w7Mg/?spm_id_from=333.788&vd_source=bb6532dcd5b1d6b26125da900adb618e) + +### 飞书知识库 + +[互联网大厂面试实录](https://hmpy6adnp5.feishu.cn/docx/OitBdRB4KozIhTxQt7Ec7iFDnkc) + +[拿下offer之必备面经](https://hmpy6adnp5.feishu.cn/docx/B1aCdVTUgoyJGYxtWV7cdvgRnxv) + + ### 基础进阶 - [`const` 那些事](./basic_content/const) @@ -141,77 +151,57 @@ docker pull xingfranics/cplusplusthings:latest #### [10 日狂练](./practical_exercises/10_day_practice) -- [x] [day1](practical_exercises/10_day_practice/day1) - -基本 c++ 语法 - -- [x] [day2](practical_exercises/10_day_practice/day2) - -递归、结构体、枚举、静态变量等 - -- [x] [day3](practical_exercises/10_day_practice/day3) - -函数 - -- [x] [day4](practical_exercises/10_day_practice/day4) - -函数深入 - -- [x] [day5](practical_exercises/10_day_practice/day5) - -继承多态 - -- [x] [day6](practical_exercises/10_day_practice/day6) +- [day1-基本语法](practical_exercises/10_day_practice/day1) -虚函数、抽象类 +- [day2-递归、结构体、枚举、静态变量等](practical_exercises/10_day_practice/day2) -- [x] [day7](practical_exercises/10_day_practice/day7) +- [day3-函数1](practical_exercises/10_day_practice/day3) -运算符重载 +- [day4-函数2](practical_exercises/10_day_practice/day4) -- [x] [day8](practical_exercises/10_day_practice/day8) +- [day5-继承多态](practical_exercises/10_day_practice/day5) -模板与 STL +- [day6-虚函数与抽象类](practical_exercises/10_day_practice/day6) -- [x] [day9](practical_exercises/10_day_practice/day9) +- [day7-运算符重载](practical_exercises/10_day_practice/day7) -异常 +- [day8-模版与STL](practical_exercises/10_day_practice/day8) -- [x] [day10](practical_exercises/10_day_practice/day10) +- [day9-异常](practical_exercises/10_day_practice/day9) -文件与流 +- [day10-文件与流](practical_exercises/10_day_practice/day10) #### [重点实战练习](./practical_exercises/key_exercises/) -├── [中括号重载.cpp](./practical_exercises/key_exercises/bracket_overloading.cpp) +- [中括号重载.cpp](./practical_exercises/key_exercises/bracket_overloading.cpp) -├── [时钟++运算符重载.cpp](./practical_exercises/key_exercises/clock.cpp) +- [时钟++运算符重载.cpp](./practical_exercises/key_exercises/clock.cpp) -├── [运算符重载之强制转换.cpp](./practical_exercises/key_exercises/operator_cast.cpp) +- [运算符重载之强制转换.cpp](./practical_exercises/key_exercises/operator_cast.cpp) -├── [重载圆括号的时钟.cpp](./practical_exercises/key_exercises/operator_circle.cpp) +- [重载圆括号的时钟.cpp](./practical_exercises/key_exercises/operator_circle.cpp) -├── [函数模板.cpp](./practical_exercises/key_exercises/func_temp.cpp) +- [函数模板.cpp](./practical_exercises/key_exercises/func_temp.cpp) -├── [动态数组.cpp](./practical_exercises/key_exercises/array.cpp) +- [动态数组.cpp](./practical_exercises/key_exercises/array.cpp) -├── [字典插入与查找.cpp](./practical_exercises/key_exercises/map_insert_look.cpp) +- [字典插入与查找.cpp](./practical_exercises/key_exercises/map_insert_look.cpp) -├── [异常捕获.cpp](./practical_exercises/key_exercises/try.cpp) +- [异常捕获.cpp](./practical_exercises/key_exercises/try.cpp) -├── [类模板之栈.cpp](./practical_exercises/key_exercises/stack.cpp) +- [类模板之栈.cpp](./practical_exercises/key_exercises/stack.cpp) -├── [类模板特化之数组.cpp](./practical_exercises/key_exercises/array_template.cpp) +- [类模板特化之数组.cpp](./practical_exercises/key_exercises/array_template.cpp) -├── [继承与封装.cpp](./practical_exercises/key_exercises/override.cpp) +- [继承与封装.cpp](./practical_exercises/key_exercises/override.cpp) -├── [读写文件综合题.cpp](./practical_exercises/key_exercises/read_file.cpp) +- [读写文件综合题.cpp](./practical_exercises/key_exercises/read_file.cpp) -├── [输入输出运算符重载.cpp](./practical_exercises/key_exercises/io_operator_overload.cpp) +- [输入输出运算符重载.cpp](./practical_exercises/key_exercises/io_operator_overload.cpp) -├── [输入输出重载.cpp](./practical_exercises/key_exercises/io_operator.cpp) +- [输入输出重载.cpp](./practical_exercises/key_exercises/io_operator.cpp) -├── [输出格式.cpp](./practical_exercises/key_exercises/output.cpp) +- [输出格式.cpp](./practical_exercises/key_exercises/output.cpp) ### [C++2.0 新特性](./cpp2.0) diff --git a/basic_content/const/funciton_const/condition2/condition3.cpp b/basic_content/const/funciton_const/condition2/condition3.cpp index 9a48109b..397d59e2 100644 --- a/basic_content/const/funciton_const/condition2/condition3.cpp +++ b/basic_content/const/funciton_const/condition2/condition3.cpp @@ -2,6 +2,6 @@ using namespace std; int main() { const int num = 10; - const int *const ptr = # // error! const int* -> int* + const int *const ptr = # cout << *ptr << endl; } diff --git a/proj/README.md b/proj/README.md index 2614ce8d..430350a5 100644 --- a/proj/README.md +++ b/proj/README.md @@ -17,7 +17,7 @@ ## 学习方式 -深入学习以下项目,可扫码加入知识星球或添加个人wx: gcxzhang,备注: 加入星球 +深入学习以下项目,可扫码加入知识星球或添加个人wx: **gcxzhang**,备注: 加入星球 知识星球 @@ -45,25 +45,8 @@ https://mp.weixin.qq.com/s/ceQoyHVMVmaXL3BNt25O4g 此外,这个项目还可以作为深入学习线程池设计与实现的资源。我们欢迎您探索并使用这个经过精心改进的线程池。 -https://github.com/Light-City/light-thread-pool +[线程池-飞书文档](https://hmpy6adnp5.feishu.cn/docx/BEKBdq0egoxmxNx3X3ZcHzkUnwd) -### 内存池 - -这个项目的内存池是基于Apache Arrow项目的衍生版本。我们将Arrow项目中复杂的核心结构——内存池——完全剥离出来,形成了这个独立的项目。由于原>始的内存池与Arrow项目本身的工具有深度依赖关系,因此我们在这个项目中对内存池进行了一些深度移除和改造,以保持与原始Arrow内存池的基础功能 -一致。一些改动包括: - -- 分离allocator与memory_pool -- 移除不需要的LoggingMemoryPool、ProxyMemoryPool -- 移除jemalloc等第三方malloc库,未来可以支持 - -通过这些改动,我们的目标是: - -- 使代码更加精简 -- 使内存池更方便地作为其他项目的依赖库使用 -提供简单的方式来引入本项目的so库和头文件,以使用内存池功能 -此外,这个项目还可以作为深入学习内存池设计与实现的资源。我们欢迎您探索并使用这个经过精心改进的内存池 - -https://github.com/Light-City/light-memory-pool ## 手把手100行写一个简易版Mutex ### 内容 @@ -72,6 +55,9 @@ https://github.com/Light-City/light-memory-pool 项目描述:简易互斥锁(SimpleMutex)是一个基于原子变量和信号量的互斥锁实现,用于保护并管理多线程环境下的共享资源访问。它提供了一种简单而有效的方式来确保在多线程并发访问时,只有一个线程可以同时访问受保护的资源,从而避免数据竞争和不一致性。基于 POSIX 标准的信号量库实现,包含 Catch2 单元测试,附带了基于 Catch2 框架的单元测试,用于验证互斥锁的正确性和稳定性,使用bazel编译,google编码规范。 +[https://mp.weixin.qq.com/s/SqtdadmCaJNSK10fScFlUw](https://mp.weixin.qq.com/s/SqtdadmCaJNSK10fScFlUw) + + ### 涉及内容 其中涉及C++知识(RAII、信号量、lock_guard、线程安全编程),还能学习以下内容: @@ -92,6 +78,8 @@ https://github.com/Light-City/light-memory-pool ## 七种方式玩转condition_variable +[https://mp.weixin.qq.com/s/33ZXOA-tzhbBKMFWS26kCw](https://mp.weixin.qq.com/s/33ZXOA-tzhbBKMFWS26kCw) + ### 内容 1.CPU轮询等待版单生产者单消费者: