Use btree iterator subtraction instead of std::distance in erase_range() and count().
PiperOrigin-RevId: 481979737
Change-Id: I69f53665b0463a7d8d80f2a3feedfdd95d32b012
diff --git a/absl/container/internal/btree.h b/absl/container/internal/btree.h
index 9c50907..5000d1c 100644
--- a/absl/container/internal/btree.h
+++ b/absl/container/internal/btree.h
@@ -2444,7 +2444,7 @@
template <typename P>
auto btree<P>::erase_range(iterator begin, iterator end)
-> std::pair<size_type, iterator> {
- size_type count = static_cast<size_type>(std::distance(begin, end));
+ size_type count = static_cast<size_type>(end - begin);
assert(count >= 0);
if (count == 0) {
diff --git a/absl/container/internal/btree_container.h b/absl/container/internal/btree_container.h
index fc2f740..3e25986 100644
--- a/absl/container/internal/btree_container.h
+++ b/absl/container/internal/btree_container.h
@@ -107,7 +107,7 @@
template <typename K = key_type>
size_type count(const key_arg<K> &key) const {
auto equal_range = this->equal_range(key);
- return std::distance(equal_range.first, equal_range.second);
+ return equal_range.second - equal_range.first;
}
template <typename K = key_type>
iterator find(const key_arg<K> &key) {