From Jason Turner

[hive.erasure]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpj97l9dwt/{from.md → to.md} +34 -0
tmp/tmpj97l9dwt/{from.md → to.md} RENAMED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Erasure <a id="hive.erasure">[[hive.erasure]]</a>
2
+
3
+ ``` cpp
4
+ template<class T, class Allocator, class U = T>
5
+ typename hive<T, Allocator>::size_type
6
+ erase(hive<T, Allocator>& c, const U& value);
7
+ ```
8
+
9
+ *Effects:* Equivalent to:
10
+
11
+ ``` cpp
12
+ return erase_if(c, [&](const auto& elem) -> bool { return elem == value; });
13
+ ```
14
+
15
+ ``` cpp
16
+ template<class T, class Allocator, class Predicate>
17
+ typename hive<T, Allocator>::size_type
18
+ erase_if(hive<T, Allocator>& c, Predicate pred);
19
+ ```
20
+
21
+ *Effects:* Equivalent to:
22
+
23
+ ``` cpp
24
+ auto original_size = c.size();
25
+ for (auto i = c.begin(), last = c.end(); i != last; ) {
26
+ if (pred(*i)) {
27
+ i = c.erase(i);
28
+ } else {
29
+ ++i;
30
+ }
31
+ }
32
+ return original_size - c.size();
33
+ ```
34
+