Website Summary Files Commits Branches @commit @diff @stats
path: root / Seminar03 / src / dynamic-array
diff options
context:
space:
mode:
Commitc2b5cde65de3a74f1c5665a710911a4c1800bc0a (patch)
Author
 Stoycho Kyosev <68247567+stoychoX@users.noreply.github.com>
2025-01-24 15:56:51 +0200
Committer
 GitHub <noreply@github.com>
2025-01-24 15:56:51 +0200
Files3db1cbfd01a6899ddccc95db1699cd74453403e9 /Seminar03/src/dynamic-array
Data-structures-and-algorithms-upstream/main.tar
Data-structures-and-algorithms-upstream/main.tar.gz
Data-structures-and-algorithms-upstream/main.zip
Parent2042cb9741838ead8a0741c8b2274ebf2a6ec5fd (diff)
Parentb89787b64f0ccde1d9a721f99ccc894ad2f620c3 (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.hpp10
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
+}