Merge branch 'stlitefix'

This commit is contained in:
2024-05-04 05:02:48 +00:00

View File

@ -521,18 +521,18 @@ class vector {
std::allocator_traits<decltype(alloc)>::destroy(alloc, raw_end - 1); std::allocator_traits<decltype(alloc)>::destroy(alloc, raw_end - 1);
raw_end--; raw_end--;
current_length--; current_length--;
if (current_length != 0 && current_length <= allocated_length / 4) [[unlikely]] { // if (current_length != 0 && current_length <= allocated_length / 4) [[unlikely]] {
size_t new_allocated_length = allocated_length / 2; // size_t new_allocated_length = allocated_length / 2;
T *new_raw_beg = alloc.allocate(new_allocated_length); // T *new_raw_beg = alloc.allocate(new_allocated_length);
for (size_t i = 0; i < current_length; ++i) { // for (size_t i = 0; i < current_length; ++i) {
std::allocator_traits<decltype(alloc)>::construct(alloc, new_raw_beg + i, std::move(raw_beg[i])); // std::allocator_traits<decltype(alloc)>::construct(alloc, new_raw_beg + i, std::move(raw_beg[i]));
std::allocator_traits<decltype(alloc)>::destroy(alloc, raw_beg + i); // std::allocator_traits<decltype(alloc)>::destroy(alloc, raw_beg + i);
} // }
alloc.deallocate(raw_beg, allocated_length); // alloc.deallocate(raw_beg, allocated_length);
raw_beg = new_raw_beg; // raw_beg = new_raw_beg;
raw_end = raw_beg + current_length; // raw_end = raw_beg + current_length;
allocated_length = new_allocated_length; // allocated_length = new_allocated_length;
} // }
} }
}; };
template <typename T> template <typename T>