From d338e9426729b2bb2c1aff99fd660cc0b22fbe20 Mon Sep 17 00:00:00 2001 From: Christian Mazakas Date: Wed, 14 Sep 2022 15:20:59 -0700 Subject: [PATCH] Update docs for rehash/reserve for unordered_set --- doc/unordered/unordered_set.adoc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/unordered/unordered_set.adoc b/doc/unordered/unordered_set.adoc index 88645126..e9bb9312 100644 --- a/doc/unordered/unordered_set.adoc +++ b/doc/unordered/unordered_set.adoc @@ -1329,7 +1329,9 @@ Effects:;; Changes the container's maximum load factor, using `z` as a hint. void rehash(size_type n); ``` -Changes the number of buckets so that there at least `n` buckets, and so that the load factor is less than the maximum load factor. +Changes the number of buckets so that there are at least `n` buckets, and so that the load factor is less than or equal to the maximum load factor. When applicable, this will either grow or shrink the `bucket_count()` associated with the container. + +When `size() == 0`, `rehash(0)` will deallocate the underlying buckets array. Invalidates iterators, and changes the order of elements. Pointers and references to elements are not invalidated. @@ -1343,11 +1345,16 @@ Throws:;; The function has no effect if an exception is thrown, unless it is thr void reserve(size_type n); ``` +Equivalent to `a.rehash(ceil(n / a.max_load_factor()))`, or `a.rehash(1)` if `n > 0` and `a.max_load_factor() == std::numeric_limits::infinity()`. + +Similar to `rehash`, this function can be used to grow or shrink the number of buckets in the container. + Invalidates iterators, and changes the order of elements. Pointers and references to elements are not invalidated. [horizontal] Throws:;; The function has no effect if an exception is thrown, unless it is thrown by the container's hash function or comparison function. + === Equality Comparisons ==== operator==