| 217 | } |
| 218 | |
| 219 | inline void MaybeResize() { |
| 220 | if (not_empty_ < grow_) { |
| 221 | return; // Nothing to do |
| 222 | } |
| 223 | if (grow_ == 0) { |
| 224 | // Special value set by erase to cause shrink on next insert. |
| 225 | if (size() >= shrink_) { |
| 226 | // Not small enough to shrink. |
| 227 | grow_ = static_cast<size_t>(bucket_count() * 0.8); |
| 228 | if (not_empty_ < grow_) return; |
| 229 | } |
| 230 | } |
| 231 | Resize(size() + 1); |
| 232 | } |
| 233 | |
| 234 | void Resize(size_t N) { |
| 235 | Bucket* old = array_; |