Skip to content

Commit 1da1af1

Browse files
committed
deploy: 020a59b
1 parent 204c3ac commit 1da1af1

File tree

13 files changed

+730
-89
lines changed

13 files changed

+730
-89
lines changed

404.html

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=edge">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77

8-
8+
<meta name="author" content="小彭老师">
99

1010
<link rel="shortcut icon" href="/img/favicon.ico">
1111
<title>✝️小彭大典✝️</title>
@@ -25,6 +25,7 @@
2525
<link href="/css/print-site-enum-headings6.css" rel="stylesheet">
2626
<link href="/css/print-site.css" rel="stylesheet">
2727
<link href="/css/print-site-mkdocs.css" rel="stylesheet">
28+
<link href="/extra.css" rel="stylesheet">
2829
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
2930
<script>hljs.highlightAll();</script>
3031
</head>
@@ -63,13 +64,17 @@
6364
</li>
6465

6566
<li>
66-
<a href="/functions/" class="dropdown-item">自定义函数 (未完工)</a>
67+
<a href="/functions/" class="dropdown-item">认识函数 (未完工)</a>
6768
</li>
6869

6970
<li>
7071
<a href="/functional/" class="dropdown-item">函数式编程</a>
7172
</li>
7273

74+
<li>
75+
<a href="/design/" class="dropdown-item">设计模式 (未完工)</a>
76+
</li>
77+
7378
<li>
7479
<a href="/unicode/" class="dropdown-item">字符编码那些事</a>
7580
</li>
@@ -89,6 +94,9 @@
8994
<i class="fa fa-search"></i> Search
9095
</a>
9196
</li>
97+
<li class="nav-item">
98+
<a href="https://github.com/parallel101/cppguidebook" class="nav-link"><i class="fa-brands fa-github"></i> GitHub</a>
99+
</li>
92100
</ul>
93101
</div>
94102
</div>
@@ -110,6 +118,7 @@ <h1 id="404-page-not-found" style="text-align: center">404</h1>
110118

111119
<footer class="col-md-12">
112120
<hr>
121+
<p>小彭老师倾 ♥ 制作</p>
113122
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
114123
</footer>
115124
<script src="/js/bootstrap.bundle.min.js"></script>
@@ -119,6 +128,8 @@ <h1 id="404-page-not-found" style="text-align: center">404</h1>
119128
</script>
120129
<script src="/js/base.js"></script>
121130
<script src="/js/print-site.js"></script>
131+
<script src="/extra.js"></script>
132+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
122133
<script src="/search/main.js"></script>
123134

124135
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">

design/index.html

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=edge">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77

8-
8+
<meta name="author" content="小彭老师">
99

1010
<link rel="shortcut icon" href="../img/favicon.ico">
11-
<title>设计模式 - ✝️小彭大典✝️</title>
11+
<title>设计模式 (未完工) - ✝️小彭大典✝️</title>
1212
<link href="../css/bootstrap.min.css" rel="stylesheet">
1313
<link href="../css/fontawesome.min.css" rel="stylesheet">
1414
<link href="../css/brands.min.css" rel="stylesheet">
@@ -25,6 +25,7 @@
2525
<link href="../css/print-site-enum-headings6.css" rel="stylesheet">
2626
<link href="../css/print-site.css" rel="stylesheet">
2727
<link href="../css/print-site-mkdocs.css" rel="stylesheet">
28+
<link href="../extra.css" rel="stylesheet">
2829
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
2930
<script>hljs.highlightAll();</script>
3031
</head>
@@ -43,7 +44,7 @@
4344
<!-- Main navigation -->
4445
<ul class="nav navbar-nav">
4546
<li class="nav-item dropdown">
46-
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">章节列表</a>
47+
<a href="#" class="nav-link dropdown-toggle active" aria-current="page" role="button" data-bs-toggle="dropdown" aria-expanded="false">章节列表</a>
4748
<ul class="dropdown-menu">
4849

4950
<li>
@@ -63,13 +64,17 @@
6364
</li>
6465

6566
<li>
66-
<a href="../functions/" class="dropdown-item">自定义函数 (未完工)</a>
67+
<a href="../functions/" class="dropdown-item">认识函数 (未完工)</a>
6768
</li>
6869

6970
<li>
7071
<a href="../functional/" class="dropdown-item">函数式编程</a>
7172
</li>
7273

74+
<li>
75+
<a href="./" class="dropdown-item active" aria-current="page">设计模式 (未完工)</a>
76+
</li>
77+
7378
<li>
7479
<a href="../unicode/" class="dropdown-item">字符编码那些事</a>
7580
</li>
@@ -89,6 +94,19 @@
8994
<i class="fa fa-search"></i> Search
9095
</a>
9196
</li>
97+
<li class="nav-item">
98+
<a rel="prev" href="../functional/" class="nav-link">
99+
<i class="fa fa-arrow-left"></i> Previous
100+
</a>
101+
</li>
102+
<li class="nav-item">
103+
<a rel="next" href="../unicode/" class="nav-link">
104+
Next <i class="fa fa-arrow-right"></i>
105+
</a>
106+
</li>
107+
<li class="nav-item">
108+
<a href="https://github.com/parallel101/cppguidebook/edit/master/docs/design.md" class="nav-link"><i class="fa-brands fa-github"></i> Edit on GitHub</a>
109+
</li>
92110
</ul>
93111
</div>
94112
</div>
@@ -107,22 +125,41 @@
107125
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
108126
<ul class="nav flex-column">
109127

110-
<li class="nav-item" data-bs-level="1"><a href="#_1" class="nav-link">设计模式</a>
128+
<li class="nav-item" data-bs-level="1"><a href="#_1" class="nav-link">设计模式 (未完工)</a>
111129
<ul class="nav flex-column">
130+
<li class="nav-item" data-bs-level="2"><a href="#_2" class="nav-link">动态类型的缺点</a>
131+
<ul class="nav flex-column">
132+
</ul>
133+
</li>
112134
</ul>
113135
</li>
114136
</ul>
115137
</div>
116138
</div></div>
117139
<div class="col-md-9" role="main">
118140

119-
<h1 id="_1">设计模式</h1>
120-
<p>不要去指挥下面怎么做!</p></div>
141+
<h1 id="_1">设计模式 (未完工)</h1>
142+
<div class="toc">
143+
<ul>
144+
<li><a href="#_1">设计模式 (未完工)</a><ul>
145+
<li><a href="#_2">动态类型的缺点</a></li>
146+
</ul>
147+
</li>
148+
</ul>
149+
</div>
150+
<p>不要去指挥下面怎么做!</p>
151+
<h2 id="_2">动态类型的缺点</h2>
152+
<div class="arithmatex">
153+
<div class="MathJax_Preview">x = {-b \pm \sqrt{b^2-4ac} \over 2a}.</div>
154+
<script type="math/tex; mode=display">x = {-b \pm \sqrt{b^2-4ac} \over 2a}.</script>
155+
</div>
156+
<p>你好 <span class="arithmatex"><span class="MathJax_Preview">O(N)</span><script type="math/tex">O(N)</script></span> 啊!</p></div>
121157
</div>
122158
</div>
123159

124160
<footer class="col-md-12">
125161
<hr>
162+
<p>小彭老师倾 ♥ 制作</p>
126163
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
127164
</footer>
128165
<script src="../js/bootstrap.bundle.min.js"></script>
@@ -132,6 +169,8 @@ <h1 id="_1">设计模式</h1>
132169
</script>
133170
<script src="../js/base.js"></script>
134171
<script src="../js/print-site.js"></script>
172+
<script src="../extra.js"></script>
173+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
135174
<script src="../search/main.js"></script>
136175

137176
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">

extra.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
h1 {
2+
font-weight: 1000;
3+
margin: 1em auto;
4+
}
5+
h2 {
6+
font-weight: 800;
7+
margin: 1em auto;
8+
}
9+
h3 {
10+
font-weight: 600;
11+
margin: 1em auto;
12+
}
13+
h4 {
14+
font-weight: 500;
15+
margin: 1em auto;
16+
}
17+
body {
18+
font-weight: 350;
19+
}
20+
blockquote {
21+
color: var(--bs-gray-600);
22+
}

extra.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var footer = document.querySelector('footer');
2+
footer.innerHTML = footer.innerHTML.replace('<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>', '<p style="display: none">本页面由 <a href="https://www.mkdocs.org/">MkDocs</a> 构建</p>');
3+
4+
var lut = {
5+
Next: '下一章',
6+
Previous: '上一章',
7+
Search: '搜索',
8+
'Edit on GitHub': '编辑此页面',
9+
};
10+
11+
// enumerate all nav-links
12+
var links = document.querySelectorAll('a.nav-link');
13+
for (var i = 0; i < links.length; i++) {
14+
var link = links[i];
15+
for (var j = 0; j < link.childNodes.length; j++) {
16+
var node = link.childNodes[j];
17+
if (node.data !== undefined) {
18+
var key = node.data.trim();
19+
var to = lut[key];
20+
if (to !== undefined) {
21+
node.data = node.data.replace(key, to);
22+
} else {
23+
console.log({a: node.data});
24+
}
25+
}
26+
}
27+
}

functional/index.html

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=edge">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77

8-
8+
<meta name="author" content="小彭老师">
99

1010
<link rel="shortcut icon" href="../img/favicon.ico">
1111
<title>函数式编程 - ✝️小彭大典✝️</title>
@@ -25,6 +25,7 @@
2525
<link href="../css/print-site-enum-headings6.css" rel="stylesheet">
2626
<link href="../css/print-site.css" rel="stylesheet">
2727
<link href="../css/print-site-mkdocs.css" rel="stylesheet">
28+
<link href="../extra.css" rel="stylesheet">
2829
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
2930
<script>hljs.highlightAll();</script>
3031
</head>
@@ -63,13 +64,17 @@
6364
</li>
6465

6566
<li>
66-
<a href="../functions/" class="dropdown-item">自定义函数 (未完工)</a>
67+
<a href="../functions/" class="dropdown-item">认识函数 (未完工)</a>
6768
</li>
6869

6970
<li>
7071
<a href="./" class="dropdown-item active" aria-current="page">函数式编程</a>
7172
</li>
7273

74+
<li>
75+
<a href="../design/" class="dropdown-item">设计模式 (未完工)</a>
76+
</li>
77+
7378
<li>
7479
<a href="../unicode/" class="dropdown-item">字符编码那些事</a>
7580
</li>
@@ -95,10 +100,13 @@
95100
</a>
96101
</li>
97102
<li class="nav-item">
98-
<a rel="next" href="../unicode/" class="nav-link">
103+
<a rel="next" href="../design/" class="nav-link">
99104
Next <i class="fa fa-arrow-right"></i>
100105
</a>
101106
</li>
107+
<li class="nav-item">
108+
<a href="https://github.com/parallel101/cppguidebook/edit/master/docs/functional.md" class="nav-link"><i class="fa-brands fa-github"></i> Edit on GitHub</a>
109+
</li>
102110
</ul>
103111
</div>
104112
</div>
@@ -139,6 +147,40 @@
139147
<div class="col-md-9" role="main">
140148

141149
<h1 id="_1">函数式编程</h1>
150+
<div class="toc">
151+
<ul>
152+
<li><a href="#_1">函数式编程</a><ul>
153+
<li><a href="#_2">为什么需要函数?</a><ul>
154+
<li><a href="#_3">狂想:没有函数的世界?</a></li>
155+
<li><a href="#_4">设计模式追求的是“可改”而不是“可读”!</a></li>
156+
<li><a href="#_5">用函数封装</a></li>
157+
<li><a href="#_6">要封装,但不要耦合</a></li>
158+
<li><a href="#_7">每个函数应该职责单一,别一心多用</a></li>
159+
<li><a href="#_8">二次封装</a></li>
160+
<li><a href="#linus-3-24">Linus 的最佳实践:每个函数不要超过 3 层嵌套,函数体不要超过 24 行</a></li>
161+
</ul>
162+
</li>
163+
<li><a href="#_9">为什么需要函数式?</a><ul>
164+
<li><a href="#_10">枚举的糟糕用法</a></li>
165+
<li><a href="#_11">函数式编程光荣救场</a></li>
166+
<li><a href="#c20-auto">我用了 C++20 的函数参数 auto 语法糖</a></li>
167+
<li><a href="#_12">函数也是对象!</a></li>
168+
<li><a href="#c11-lambda">C++11 引入 Lambda 语法糖</a></li>
169+
<li><a href="#_13">依赖注入原则</a></li>
170+
<li><a href="#_14">低耦合,高内聚</a></li>
171+
<li><a href="#_15">与传统面向对象的对比</a></li>
172+
<li><a href="#_16">函数对象在模板加持下静态分发</a></li>
173+
<li><a href="#function">函数对象也可在 function 容器中动态分发</a></li>
174+
<li><a href="#_17">案例:函数对象的动态分发用于多线程任务队列</a></li>
175+
<li><a href="#_18">函数对象的重要机制:闭包</a></li>
176+
<li><a href="#c">函数指针是 C 语言陋习,改掉</a></li>
177+
</ul>
178+
</li>
179+
<li><a href="#bind">bind 为函数对象绑定参数</a></li>
180+
</ul>
181+
</li>
182+
</ul>
183+
</div>
142184
<h2 id="_2">为什么需要函数?</h2>
143185
<pre><code class="language-cpp">int main() {
144186
std::vector&lt;int&gt; a = {1, 2, 3, 4};
@@ -928,6 +970,7 @@ <h2 id="bind">bind 为函数对象绑定参数</h2>
928970

929971
<footer class="col-md-12">
930972
<hr>
973+
<p>小彭老师倾 ♥ 制作</p>
931974
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
932975
</footer>
933976
<script src="../js/bootstrap.bundle.min.js"></script>
@@ -937,6 +980,8 @@ <h2 id="bind">bind 为函数对象绑定参数</h2>
937980
</script>
938981
<script src="../js/base.js"></script>
939982
<script src="../js/print-site.js"></script>
983+
<script src="../extra.js"></script>
984+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
940985
<script src="../search/main.js"></script>
941986

942987
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">

0 commit comments

Comments
 (0)