From b89787b64f0ccde1d9a721f99ccc894ad2f620c3 Mon Sep 17 00:00:00 2001 From: Hristo Partenov <146854527+ico12319@users.noreply.github.com> Date: Fri, 24 Jan 2025 00:54:24 +0200 Subject: Update vector.hpp --- Seminar03/src/dynamic-array/vector/vector.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Seminar03/src/dynamic-array') diff --git a/Seminar03/src/dynamic-array/vector/vector.hpp b/Seminar03/src/dynamic-array/vector/vector.hpp index 8db5178..8ae9ede 100644 --- a/Seminar03/src/dynamic-array/vector/vector.hpp +++ b/Seminar03/src/dynamic-array/vector/vector.hpp @@ -254,7 +254,7 @@ void vector::resize(size_t n) T* new_data = _allocator.allocate(n); for (size_t i = 0; i < size(); i++) - _allocator.construct(new_data, std::move(_data[i])); + _allocator.construct(&new_data[i], std::move(_data[i])); for (size_t i = size(); i < n; i++) _allocator.construct(&new_data[i]); @@ -312,7 +312,7 @@ void vector::push_back(const T& element) if (size() == capacity()) reserve(calculate_capacity()); - _allocator.construct(_data[_size++], element); + _allocator.construct(&_data[_size++], element); } template @@ -348,12 +348,12 @@ void vector::erase(const_iterator first, const_iterator last) size_t construct_idx = begin_offset; for (size_t i = end_offset; i < size(); i++) { - _allocator.construct(&_data[construct_idx], std::move(_data[i])); + _data[construct_idx] = std::move(_data[i]); ++construct_idx; } } - for (size_t i = end_offset; i < size(); i++) + for (size_t i = size() - deleted_count; i < size(); i++) _allocator.destroy(&_data[i]); _size -= deleted_count; @@ -415,4 +415,4 @@ template bool vector::empty() const { return (size() == 0); -} \ No newline at end of file +} -- cgit v1.3.1-23-gd82d