diff options
| Commit | c2b5cde65de3a74f1c5665a710911a4c1800bc0a (patch) | |
|---|---|---|
| Author | 2025-01-24 15:56:51 +0200 | |
| Committer | 2025-01-24 15:56:51 +0200 | |
| Files | 3db1cbfd01a6899ddccc95db1699cd74453403e9 /Seminar03/src | |
| Data-structures-and-algorithms-upstream/main.tar Data-structures-and-algorithms-upstream/main.tar.gz Data-structures-and-algorithms-upstream/main.zip | ||
| Parent | 2042cb9741838ead8a0741c8b2274ebf2a6ec5fd (diff) | |
| Parent | b89787b64f0ccde1d9a721f99ccc894ad2f620c3 (diff) | |
Merge pull request #20 from ico12319/patch-8 upstream/main
1 files changed, 5 insertions, 5 deletions
| -rw-r--r-- | Seminar03/src/dynamic-array/vector/vector.hpp | 10 |
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<T, Allocator>::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<T, Allocator>::push_back(const T& element) if (size() == capacity()) reserve(calculate_capacity()); - _allocator.construct(_data[_size++], element); + _allocator.construct(&_data[_size++], element); } template <class T, class Allocator> @@ -348,12 +348,12 @@ void vector<T, Allocator>::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 <class T, class Allocator> bool vector<T, Allocator>::empty() const { return (size() == 0); -}
\ No newline at end of file +} |
