Skip to content

Commit

Permalink
update readme and fix error
Browse files Browse the repository at this point in the history
  • Loading branch information
Light-City committed Mar 30, 2024
1 parent a22d3d0 commit 1f80a1d
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 65 deletions.
80 changes: 35 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- [方式2: docker](#方式2-docker)
- [方式3: g++](#方式3-g)
- [视频学习本项目](#视频学习本项目)
- [飞书知识库](#飞书知识库)
- [基础进阶](#基础进阶)
- [实战系列](#实战系列)
- [10 日狂练](#10-日狂练)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
26 changes: 7 additions & 19 deletions proj/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

## 学习方式

深入学习以下项目,可扫码加入知识星球或添加个人wx: gcxzhang,备注: 加入星球
深入学习以下项目,可扫码加入知识星球或添加个人wx: **gcxzhang**,备注: 加入星球


<img src="../img/cpp.jpg" alt="知识星球" width="400" height="300">
Expand Down Expand Up @@ -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
### 内容
Expand All @@ -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、线程安全编程),还能学习以下内容:
Expand All @@ -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轮询等待版单生产者单消费者:
Expand Down

0 comments on commit 1f80a1d

Please sign in to comment.