When reserve(new_size) is called for unordered_set/unordered_map – does it cause allocation of new array of buckets and moving all items?
AFAIU (maybe I am wrong), unordered_set/unordered_map use underlying array or vector for buckets.
So when we want more buckets, larger array needs to be allocated and buckets moved into it and elements moved using move constructor?
I.e. does it work similar to vector::reserve?