diff options
author | Abseil Team <absl-team@google.com> | 2019-12-18 11:46:26 -0800 |
---|---|---|
committer | CJ Johnson <johnsoncj@google.com> | 2019-12-18 15:38:26 -0500 |
commit | 29235139149790f5afc430c11cec8f1eb1677607 (patch) | |
tree | a83dfbf7b31ea89bcc562322ca730ce9a2dee5ad /absl/container/btree_set.h | |
parent | bf86cfe165ef7d70dfe68f0b8fc0c018bc79a577 (diff) | |
download | abseil-29235139149790f5afc430c11cec8f1eb1677607.tar.gz abseil-29235139149790f5afc430c11cec8f1eb1677607.tar.bz2 abseil-29235139149790f5afc430c11cec8f1eb1677607.zip |
Export of internal Abseil changes
--
a7e789be4687681b98060fddbf8bd1c64a8f5908 by Abseil Team <absl-team@google.com>:
Support C++20 erase_if API in btree.
See the reference here: https://en.cppreference.com/w/cpp/container/set/erase_if.
PiperOrigin-RevId: 286235196
--
952dd2fdd8435dd293e2186c97e14ef3f29a1aa6 by Derek Mauro <dmauro@google.com>:
Avoids accessing an out-of-bounds value during flag parsing
PiperOrigin-RevId: 286206167
--
ba24591ade579fc4446a09bb3f23bf3602908c04 by Abseil Team <absl-team@google.com>:
Change null term* (and nul term*) to NUL-term* in comments.
PiperOrigin-RevId: 286066376
--
d770baecf36f3d7a8214ca2033d90696ba353d00 by Andy Soffer <asoffer@google.com>:
cmake: Fix x86_64 check on Windows for random copts
Import of https://github.com/abseil/abseil-cpp/pull/518
PiperOrigin-RevId: 286056395
--
9ed007e284ecf6ec79547437dbed9ce3023204b9 by Greg Falcon <gfalcon@google.com>:
Manual re-import of CCTZ from GitHub. filegroup() moved as a side effect of an internal change.
PiperOrigin-RevId: 286015866
--
25441cc5cb7ee906177f8dac0dcd524df0e6e305 by Derek Mauro <dmauro@google.com>:
Fix implicit cycle in debugging build rules due to .inc files
PiperOrigin-RevId: 285873346
GitOrigin-RevId: a7e789be4687681b98060fddbf8bd1c64a8f5908
Change-Id: Idef8cce4e723fccae6bdd749e94e11e655908214
Diffstat (limited to 'absl/container/btree_set.h')
-rw-r--r-- | absl/container/btree_set.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/absl/container/btree_set.h b/absl/container/btree_set.h index 2a4d0ace..127fb940 100644 --- a/absl/container/btree_set.h +++ b/absl/container/btree_set.h @@ -360,6 +360,20 @@ void swap(btree_set<K, C, A> &x, btree_set<K, C, A> &y) { return x.swap(y); } +// absl::erase_if(absl::btree_set<>, Pred) +// +// Erases all elements that satisfy the predicate pred from the container. +template <typename K, typename C, typename A, typename Pred> +void erase_if(btree_set<K, C, A> &set, Pred pred) { + for (auto it = set.begin(); it != set.end();) { + if (pred(*it)) { + it = set.erase(it); + } else { + ++it; + } + } +} + // absl::btree_multiset<> // // An `absl::btree_multiset<K>` is an ordered associative container of @@ -649,6 +663,20 @@ void swap(btree_multiset<K, C, A> &x, btree_multiset<K, C, A> &y) { return x.swap(y); } +// absl::erase_if(absl::btree_multiset<>, Pred) +// +// Erases all elements that satisfy the predicate pred from the container. +template <typename K, typename C, typename A, typename Pred> +void erase_if(btree_multiset<K, C, A> &set, Pred pred) { + for (auto it = set.begin(); it != set.end();) { + if (pred(*it)) { + it = set.erase(it); + } else { + ++it; + } + } +} + ABSL_NAMESPACE_END } // namespace absl |