diff --git a/templates/vector.tpp b/templates/vector.tpp index 69c756b..5f6959d 100644 --- a/templates/vector.tpp +++ b/templates/vector.tpp @@ -179,19 +179,19 @@ typename enable_if< !is_integral::value,void >::type VT:: assign( InputIterator first, InputIterator last) { InputIterator tmp = first; - int range = 0; + unsigned int range = 0; clear(); while (tmp++ != last) range++; - _size += range; - if (_size >= _capacity) - reserve(_size); + if (range >= _capacity) + reserve(range); while (first != last) { _allocator.construct(&_mem_ptr[_size], *first); first++; + _size++; } } VT_TPL void VT:: diff --git a/tests/main.cpp b/tests/main.cpp index bed6c7a..bd8ee50 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -319,7 +319,6 @@ int main() { std::cout << "Size of second: " << int (second.size()) << '\n'; std::cout << "Size of third: " << int (third.size()) << '\n'; - // title TITLE(capacity tests of assignation :) @@ -357,31 +356,31 @@ int main() { ft::vector int_vector_2; ft::vector int_vector_3; ft::vector it_vector; + int ssize; std::cout << "\nassign 1\n"; int_vector_1.assign(1, 12); it_vector.assign(int_vector_1.begin(), int_vector_1.end()); - size = it_vector.size(); - for (int i = 0; i < size; i++) + ssize = it_vector.size(); + for (int i = 0; i < ssize; i++) std::cout << "[" << i << "] " << it_vector[i] << " - "; - std::cout << "\nsize : " << size << " , capacity : " << it_vector.capacity() << "\n"; + std::cout << "\nsize : " << ssize << " , capacity : " << it_vector.capacity() << "\n"; - std::cout << "\nassign 1\n"; + std::cout << "\nassign 0\n"; int_vector_2.assign(1, 6); it_vector.assign(int_vector_2.begin(), int_vector_2.end() - 1); - size = it_vector.size(); - for (int i = 0; i < size; i++) + ssize = it_vector.size(); + for (int i = 0; i < ssize; i++) std::cout << "[" << i << "] " << it_vector[i] << " - "; - std::cout << "\nsize : " << size << " , capacity : " << it_vector.capacity() << "\n"; + std::cout << "\nsize : " << ssize << " , capacity : " << it_vector.capacity() << "\n"; - std::cout << "\nassign 1\n"; + std::cout << "\nassign 266 - 13 - 172 = 81\n"; int_vector_3.assign(266, 1); it_vector.assign(int_vector_3.begin() + 13, int_vector_3.end() - 172); - size = it_vector.size(); - for (int i = 0; i < size; i++) + ssize = it_vector.size(); + for (int i = 0; i < ssize; i++) std::cout << "[" << i << "] " << it_vector[i] << " - "; - std::cout << "\nsize : " << size << " , capacity : " << it_vector.capacity() << "\n"; - + std::cout << "\nsize : " << ssize << " , capacity : " << it_vector.capacity() << "\n"; } TESTEND