resolved pbm assign iterator

This commit is contained in:
hugogogo
2022-06-08 21:17:39 +02:00
parent 5d0e631cb7
commit b385f6220a
2 changed files with 16 additions and 17 deletions

View File

@@ -179,19 +179,19 @@ typename enable_if< !is_integral<InputIterator>::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::

View File

@@ -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> int_vector_2;
ft::vector<int> int_vector_3;
ft::vector<int> 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