-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
235 lines (220 loc) · 15.8 KB
/
Copy pathindex.html
File metadata and controls
235 lines (220 loc) · 15.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Libraries - C++ Mode for Processing</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #111; background: #fff; }
a { color: #111; text-decoration: none; }
nav { border-bottom: 1px solid #e0e0e0; padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; height: 60px; position: sticky; top: 0; background: #fff; z-index: 100; }
.layout { display: flex; min-height: calc(100vh - 60px); }
.sidebar-outer { width: 220px; min-width: 220px; border-right: 1px solid #e0e0e0; display: flex; flex-direction: column; position: sticky; top: 60px; height: calc(100vh - 60px); }
#site-sidebar { padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid #e0e0e0; display: flex; flex-direction: column; }
#site-sidebar a { font-size: 14px; color: #555; padding: 0.4rem 0; display: block; }
#site-sidebar a:hover { color: #111; }
#site-sidebar a.active { color: #111; font-weight: 500; }
.content { flex: 1; padding: 4rem; max-width: 820px; }
.content h1 { font-size: 2rem; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 0.5rem; color: #e8b400; }
.content h2 { font-size: 1.1rem; font-weight: 600; margin-top: 3rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #e0e0e0; color: #b8860b; }
.content p { color: #444; line-height: 1.8; margin-bottom: 1rem; font-size: 0.95rem; }
.content .subtitle { color: #888; font-size: 0.95rem; margin-bottom: 3rem; }
.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1px; background: #e0e0e0; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; margin-bottom: 2rem; }
.lib-card { background: #fff; padding: 1.25rem 1.5rem; }
.lib-card code { font-family: "SF Mono","Fira Code",monospace; font-size: 13px; font-weight: 600; color: #111; display: block; margin-bottom: 0.35rem; }
.lib-card p { font-size: 13px; color: #888; line-height: 1.5; margin: 0; }
.lib-card code a:hover { border-bottom-color: #111 !important; }
.lib-card code a:hover { border-bottom-color: #111 !important; }
.tip { background: #f8f8f8; border-left: 3px solid #111; border-radius: 4px; padding: 1rem 1.25rem; margin-bottom: 2rem; font-size: 13px; color: #555; line-height: 1.7; }
.tip code { font-family: "SF Mono","Fira Code",monospace; font-size: 12px; background: #eee; border-radius: 3px; padding: 1px 5px; color: #111; }
footer { border-top: 1px solid #e0e0e0; padding: 2rem; text-align: center; font-size: 13px; color: #888; }
@media (max-width: 768px) {
.hamburger { display: block; }
.sidebar-outer { position: fixed; top: 60px; left: -240px; width: 240px; height: calc(100vh - 60px); background: #fff; z-index: 200; transition: left 0.25s ease; box-shadow: 2px 0 12px rgba(0,0,0,0.08); }
.sidebar-outer.open { left: 0; }
.content { padding: 2rem 1.25rem; }
}
.wn-tag {
display: inline-block;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 1px 6px;
border-radius: 3px;
margin-bottom: 0.5rem;
}
.wn-tag.changed { background: #fff3cd; color: #856404; }
.wn-tag.new { background: #d1e7dd; color: #0f5132; }
.wn-tag.removed { background: #f8d7da; color: #842029; }
.whats-new {
border: 1px solid #e0e0e0;
border-radius: 10px;
margin-bottom: 3rem;
overflow: hidden;
}
.wn-header {
background: #f8f8f8;
border-bottom: 1px solid #e0e0e0;
padding: 2rem 2rem 1.5rem;
}
.wn-badge {
display: inline-block;
background: #e8b400;
color: #fff;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.08em;
padding: 2px 8px;
border-radius: 4px;
margin-bottom: 0.75rem;
text-transform: uppercase;
}
.wn-header h2 {
font-size: 1.4rem;
font-weight: 700;
margin-bottom: 0.75rem;
color: #111;
}
.wn-prelude {
font-size: 0.95rem;
color: #555;
line-height: 1.8;
max-width: 680px;
}
.wn-prelude strong { color: #111; }
.wn-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
.wn-card {
padding: 1.75rem 2rem;
border-right: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
.wn-card:nth-child(even) { border-right: none; }
.wn-card-title {
font-size: 13px;
font-weight: 700;
margin-bottom: 0.75rem;
color: #111;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.wn-card-body {
font-size: 13px;
color: #555;
line-height: 1.75;
}
.wn-card-body p { margin-bottom: 0.75rem; }
.wn-card-body code {
font-family: "SF Mono","Fira Code",monospace;
background: #f4f4f4;
padding: 1px 5px;
border-radius: 3px;
font-size: 12px;
color: #111;
}
.wn-card-body pre {
background: #0d0d0d;
color: #ccc;
font-family: "SF Mono","Fira Code",monospace;
font-size: 12px;
line-height: 1.6;
padding: 0.75rem 1rem;
border-radius: 6px;
margin-top: 0.75rem;
overflow-x: auto;
white-space: pre;
}
.wn-tag {
display: inline-block;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 1px 6px;
border-radius: 3px;
margin-bottom: 0.5rem;
}
.wn-tag.changed { background: #fff3cd; color: #856404; }
.wn-tag.new { background: #d1e7dd; color: #0f5132; }
.wn-tag.removed { background: #f8d7da; color: #842029; }
</style>
</head>
<body>
<nav id="site-nav"></nav>
<div class="layout">
<div class="sidebar-outer">
<div id="site-sidebar">
<a href="../libraries" class='active'>Libraries</a>
<a href="../reference" >Reference</a>
<a href="../examples" >Examples</a>
<a href="../about" >About</a>
</div>
</div>
<div class="content">
<h1>Libraries</h1>
<p class="subtitle">Everything available in C++ Mode out of the box.</p>
<div class="tip">
None of these require an <code>#include</code>. They are all automatically available in every sketch through <code>Processing.h</code>.
</div>
<h2>Containers</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/vector" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::vector</a></code><p>Dynamic array. The most common container. Use instead of Java's ArrayList.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/map" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::map</a></code><p>Key-value pairs sorted by key.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/unordered_map" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::unordered_map</a></code><p>Hash map. Faster lookups than std::map but unsorted.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/set" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::set</a></code><p>Sorted collection of unique values.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/unordered_set" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::unordered_set</a></code><p>Hash set. Faster lookups than std::set but unsorted.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/list" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::list</a></code><p>Doubly linked list. Fast insert and remove at any position.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/deque" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::deque</a></code><p>Double-ended queue. Fast insert and remove at both ends.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/queue" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::queue</a></code><p>FIFO queue adapter.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/container/stack" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::stack</a></code><p>LIFO stack adapter.</p></div>
</div>
<h2>Algorithms</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/sort" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::sort</a></code><p>Sort any container. Works with lambdas for custom comparison.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/find" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::find</a></code><p>Find an element in a range.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/remove" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::remove_if</a></code><p>Remove elements matching a condition. Commonly used with vectors.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/min" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::min / std::max</a></code><p>Min and max of two values.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/accumulate" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::accumulate</a></code><p>Sum or fold a range of values.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/algorithm/transform" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::transform</a></code><p>Apply a function to every element in a range.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/iterator" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::iterator</a></code><p>Iterator utilities for working with ranges and containers.</p></div>
</div>
<h2>Strings and IO</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/string/basic_string" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::string</a></code><p>Text string. Use instead of Java's String.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/io/basic_stringstream" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::stringstream</a></code><p>Build strings from mixed types.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/io/basic_ifstream" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::ifstream</a></code><p>Read from files.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/io/basic_ofstream" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::ofstream</a></code><p>Write to files.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/regex" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::regex</a></code><p>Regular expressions for pattern matching.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/io/cout" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::cout / std::cerr</a></code><p>Print to the console. Also available as println().</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/iomanip" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::iomanip</a></code><p>Format output — set precision, width, fill characters.</p></div>
</div>
<h2>Concurrency</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/thread/thread" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::thread</a></code><p>Run code on a separate thread.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/functional" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::functional</a></code><p>Function wrappers, std::function, std::bind, lambdas.</p></div>
</div>
<h2>Utilities</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/utility/optional" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::optional</a></code><p>A value that may or may not be present.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/utility/variant" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::variant</a></code><p>A value that can be one of several types.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/utility/tuple" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::tuple</a></code><p>A fixed-size collection of values of different types.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/memory" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::unique_ptr / std::shared_ptr</a></code><p>Smart pointers for automatic memory management.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/chrono" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::chrono</a></code><p>Time utilities. Measure durations and get the current time.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/cstdlib" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::cstdlib / std::ctime</a></code><p>C standard library utilities and time functions.</p></div>
</div>
<h2>Math</h2>
<div class="lib-grid">
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/cmath" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::cmath</a></code><p>sin, cos, tan, sqrt, pow, abs, floor, ceil and more.</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/random" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::random</a></code><p>Random number generation. Also available as random().</p></div>
<div class="lib-card"><code><a href="https://en.cppreference.com/w/cpp/header/numeric" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;border-bottom:1px solid #ddd;">std::numeric</a></code><p>iota, accumulate, inner_product and more.</p></div>
</div>
</div>
</div>
<footer><p>C++ Mode for Processing</p><p class="footer-contact"><a href="mailto:[email protected]">[email protected]</a> · <a href="https://discord.gg/vShSrPegJT">Discord</a></p></footer>
<script src="../assets/nav.js"></script>
</body>
</html>