From fc44fa053cc91193d2bb60fb9356bcecb301242e Mon Sep 17 00:00:00 2001 From: Evan Brown Date: Fri, 1 Sep 2023 07:57:39 -0700 Subject: [PATCH] Add a comment about a more efficient implementation of btree range erase. PiperOrigin-RevId: 561954737 Change-Id: I0e29a4f4523e4b3eafbd26d1d96f6e1c8deed957 --- absl/container/internal/btree.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/absl/container/internal/btree.h b/absl/container/internal/btree.h index 569faa07..5e8a2523 100644 --- a/absl/container/internal/btree.h +++ b/absl/container/internal/btree.h @@ -2534,6 +2534,10 @@ auto btree

::rebalance_after_delete(iterator iter) -> iterator { return res; } +// Note: we tried implementing this more efficiently by erasing all of the +// elements in [begin, end) at once and then doing rebalancing once at the end +// (rather than interleaving deletion and rebalancing), but that adds a lot of +// complexity, which seems to outweigh the performance win. template auto btree

::erase_range(iterator begin, iterator end) -> std::pair {