Skip to content

Commit 58d4d67

Browse files
hot fix: can not render mermaid in qt-export
1 parent 665c9f3 commit 58d4d67

1 file changed

Lines changed: 9 additions & 18 deletions

File tree

tutorial/expert/01-qtbase/02-cow-container-practice-expert.md

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -292,25 +292,16 @@ const 版本不触发:
292292
293293
### 3.5 const 正确性——你的性能就藏在这里
294294
295-
我们前面看了三个容器的源码,它们遵循完全一样的模式:非 const 方法调 detach(),const 方法不调。这意味着 `const` 不只是一个编译器检查——它在运行时直接决定了你的代码会不会触发一次深拷贝。先看一张总结图
295+
我们前面看了三个容器的源码,它们遵循完全一样的模式:非 const 方法调 detach(),const 方法不调。这意味着 `const` 不只是一个编译器检查——它在运行时直接决定了你的代码会不会触发一次深拷贝。先看一张总结表
296296
297-
```mermaid
298-
flowchart LR
299-
subgraph 安全["✓ 不触发 detach"]
300-
S1["constData()"]
301-
S2["data() const"]
302-
S3["at(i)"]
303-
S4["begin() const\nend() const"]
304-
S5["cbegin()\ncend()"]
305-
S6["operator[] const"]
306-
end
307-
subgraph 危险["✗ 触发 detach(共享时)"]
308-
D1["data() 非const"]
309-
D2["begin() / end()"]
310-
D3["operator[] 非const"]
311-
D4["range-for\n(auto& x : c)"]
312-
end
313-
```
297+
| ✓ 不触发 detach | ✗ 触发 detach(共享时) |
298+
|---|---|
299+
| `constData()` | `data()`(非 const) |
300+
| `data()` const | `begin()` / `end()` |
301+
| `at(i)` | `operator[]`(非 const) |
302+
| `begin()` const / `end()` const | range-for(`auto& x : c`) |
303+
| `cbegin()` / `cend()` | |
304+
| `operator[]` const | |
314305
315306
左边这些是安全的——不会触发 detach,零额外开销。右边这些在容器被共享时会触发一次完整的深拷贝。几个实际场景:
316307

0 commit comments

Comments
 (0)