vector insert ok
This commit is contained in:
207
tests/main.cpp
207
tests/main.cpp
@@ -11,11 +11,23 @@
|
||||
#include "vector.hpp"
|
||||
#endif
|
||||
|
||||
struct mystruct { int value; };
|
||||
/**/ // struct for tests
|
||||
/**/
|
||||
/**/ struct mystruct {
|
||||
/**/ public:
|
||||
/**/ mystruct(int data = 1) {_val = new int[1]; _val[0] = data;}
|
||||
/**/ ~mystruct() {delete[] _val;}
|
||||
/**/ int * get_data() const {return _val;}
|
||||
/**/ private:
|
||||
/**/ int * _val;
|
||||
/**/ };
|
||||
/**/ std::ostream & operator<<(std::ostream & o, mystruct const & rhs) {
|
||||
/**/ o << rhs.get_data()[0];
|
||||
/**/ return (o);
|
||||
/**/ }
|
||||
|
||||
int main() {
|
||||
|
||||
/*
|
||||
TEST(vector::vector (constructor))
|
||||
{
|
||||
// title
|
||||
@@ -105,7 +117,6 @@ int main() {
|
||||
std::cout << '\n';
|
||||
}
|
||||
TESTEND
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
@@ -152,7 +163,6 @@ int main() {
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
TEST(vector::size)
|
||||
{
|
||||
// title
|
||||
@@ -623,95 +633,177 @@ int main() {
|
||||
std::cout << "capacity : " << myvector.capacity() << '\n';
|
||||
}
|
||||
TESTEND
|
||||
*/
|
||||
|
||||
|
||||
TEST(vector::insert)
|
||||
{
|
||||
// // title
|
||||
// TITLE(cplusplus.com reference :)
|
||||
//
|
||||
// std::vector<int> myvector (3,100);
|
||||
// std::vector<int>::iterator it;
|
||||
//
|
||||
// it = myvector.begin();
|
||||
// it = myvector.insert ( it , 200 );
|
||||
//
|
||||
// myvector.insert (it,2,300);
|
||||
//
|
||||
// // "it" no longer valid, get a new one:
|
||||
// it = myvector.begin();
|
||||
//
|
||||
// std::vector<int> anothervector (2,400);
|
||||
// myvector.insert (it+2,anothervector.begin(),anothervector.end());
|
||||
//
|
||||
// int myarray [] = { 501,502,503 };
|
||||
// myvector.insert (myvector.begin(), myarray, myarray+3);
|
||||
//
|
||||
// std::cout << "myvector contains:";
|
||||
// for (it=myvector.begin(); it<myvector.end(); it++)
|
||||
// std::cout << ' ' << *it;
|
||||
// std::cout << '\n';
|
||||
ft::vector<int>::iterator it;
|
||||
ft::vector<mystruct*>::iterator its;
|
||||
int i;
|
||||
|
||||
// title
|
||||
TITLE(cplusplus.com reference :)
|
||||
|
||||
ft::vector<int> myvector (3,100);
|
||||
|
||||
it = myvector.begin();
|
||||
it = myvector.insert ( it , 200 );
|
||||
myvector.insert (it,2,300);
|
||||
|
||||
ft::vector<int> anothervector (2,400);
|
||||
it = myvector.begin();
|
||||
myvector.insert (it+2,anothervector.begin(),anothervector.end());
|
||||
|
||||
int myarray [] = { 501,502,503 };
|
||||
myvector.insert (myvector.begin(), myarray, myarray+3);
|
||||
|
||||
std::cout << "myvector contains:";
|
||||
for (it=myvector.begin(); it<myvector.end(); it++)
|
||||
std::cout << ' ' << *it;
|
||||
std::cout << '\n';
|
||||
|
||||
|
||||
// title
|
||||
TITLE(tests positions on insert(pos, value) :)
|
||||
|
||||
ft::vector<int> myvector2 (3,100);
|
||||
ft::vector<int>::iterator it2;
|
||||
|
||||
it2 = myvector2.begin();
|
||||
std::cout << "\nsize:" << myvector2.size() << " capacity:" << myvector2.capacity() << "\n";
|
||||
myvector2.insert ( it2 , 200 );
|
||||
it = myvector2.begin();
|
||||
std::cout << "size:" << myvector2.size() << " capacity:" << myvector2.capacity() << "\n";
|
||||
myvector2.insert ( it , 200 );
|
||||
std::cout << "myvector contains:";
|
||||
for (it2 = myvector2.begin(); it2 < myvector2.end(); it2++)
|
||||
std::cout << ' ' << *it2;
|
||||
for (it = myvector2.begin(); it < myvector2.end(); it++)
|
||||
std::cout << ' ' << *it;
|
||||
std::cout << "\nsize:" << myvector2.size() << " capacity:" << myvector2.capacity() << "\n";
|
||||
|
||||
ft::vector<int> myvector3 (3,100);
|
||||
ft::vector<int>::iterator it3;
|
||||
|
||||
it3 = myvector3.end();
|
||||
it = myvector3.end();
|
||||
std::cout << "\nsize:" << myvector3.size() << " capacity:" << myvector3.capacity() << "\n";
|
||||
myvector3.insert ( it3 , 200 );
|
||||
myvector3.insert ( it , 200 );
|
||||
std::cout << "myvector contains:";
|
||||
for (it3 = myvector3.begin(); it3 < myvector3.end(); it3++)
|
||||
std::cout << ' ' << *it3;
|
||||
for (it = myvector3.begin(); it < myvector3.end(); it++)
|
||||
std::cout << ' ' << *it;
|
||||
std::cout << "\nsize:" << myvector3.size() << " capacity:" << myvector3.capacity() << "\n";
|
||||
|
||||
|
||||
// title
|
||||
TITLE(tests positions on insert(pos, value) with struct :)
|
||||
|
||||
mystruct s_1;
|
||||
mystruct s_2;
|
||||
ft::vector<mystruct*> myvector4;
|
||||
mystruct *s;
|
||||
|
||||
s_1.value = 1;
|
||||
s_2.value = 2;
|
||||
i = 0;
|
||||
while (i < 3)
|
||||
{
|
||||
s = new mystruct(i++);
|
||||
myvector4.push_back(s);
|
||||
}
|
||||
|
||||
ft::vector<mystruct> myvector4 (3,s_1);
|
||||
ft::vector<mystruct>::iterator it4;
|
||||
|
||||
it4 = myvector4.begin();
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
myvector4.insert ( it4 , s_2 );
|
||||
its = myvector4.begin();
|
||||
std::cout << "size:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
s = new mystruct(i++);
|
||||
myvector4.insert ( its , s );
|
||||
std::cout << "myvector contains:";
|
||||
for (it4 = myvector4.begin(); it4 < myvector4.end(); it4++)
|
||||
std::cout << ' ' << (*it4).value;
|
||||
for (its = myvector4.begin(); its < myvector4.end(); its++)
|
||||
std::cout << ' ' << **its;
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
|
||||
it4 = myvector4.begin() + 2;
|
||||
its = myvector4.begin() + 2;
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
myvector4.insert ( it4 , s_2 );
|
||||
s = new mystruct(i++);
|
||||
myvector4.insert ( its , s );
|
||||
std::cout << "myvector contains:";
|
||||
for (it4 = myvector4.begin(); it4 < myvector4.end(); it4++)
|
||||
std::cout << ' ' << (*it4).value;
|
||||
for (its = myvector4.begin(); its < myvector4.end(); its++)
|
||||
std::cout << ' ' << **its;
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
|
||||
its = myvector4.end();
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
s = new mystruct(i++);
|
||||
myvector4.insert ( its , s );
|
||||
std::cout << "myvector contains:";
|
||||
for (its = myvector4.begin(); its < myvector4.end(); its++)
|
||||
std::cout << ' ' << **its;
|
||||
std::cout << "\nsize:" << myvector4.size() << " capacity:" << myvector4.capacity() << "\n";
|
||||
|
||||
|
||||
// title
|
||||
TITLE(tests insert(pos, size, value) :)
|
||||
|
||||
ft::vector<int> myvector5;
|
||||
|
||||
for (i = 1; i <= 5; i++)
|
||||
myvector5.push_back(i * 100);
|
||||
|
||||
it = myvector5.begin() + 1;
|
||||
myvector5.insert ( it , 150 );
|
||||
|
||||
it = myvector5.end();
|
||||
myvector5.insert (it,2,600);
|
||||
|
||||
it = myvector5.end() - 2;
|
||||
myvector5.insert (it,2,550);
|
||||
|
||||
std::cout << "myvector contains:";
|
||||
for (it = myvector5.begin(); it < myvector5.end(); it++)
|
||||
std::cout << ' ' << *it;
|
||||
std::cout << '\n';
|
||||
std::cout << "\nsize:" << myvector5.size() << " capacity:" << myvector5.capacity() << "\n";
|
||||
|
||||
|
||||
// title
|
||||
TITLE(tests positions on insert(pos, value) with struct :)
|
||||
|
||||
ft::vector<mystruct*> myvector6;
|
||||
|
||||
i = 1;
|
||||
while (i <= 5)
|
||||
{
|
||||
s = new mystruct(i++ * 100);
|
||||
myvector6.push_back(s);
|
||||
}
|
||||
|
||||
its = myvector6.begin() + 1;
|
||||
s = new mystruct(150);
|
||||
myvector6.insert ( its , s );
|
||||
|
||||
its = myvector6.end();
|
||||
s = new mystruct(600);
|
||||
myvector6.insert ( its, 2, s );
|
||||
|
||||
its = myvector6.end() - 2;
|
||||
s = new mystruct(550);
|
||||
myvector6.insert ( its, 2, s );
|
||||
|
||||
std::cout << "myvector contains:";
|
||||
for (its = myvector6.begin(); its < myvector6.end(); its++)
|
||||
std::cout << ' ' << **its;
|
||||
std::cout << "\nsize:" << myvector6.size() << " capacity:" << myvector6.capacity() << "\n";
|
||||
|
||||
|
||||
// title
|
||||
TITLE(tests insert(pos, first, last) with struct :)
|
||||
|
||||
ft::vector<mystruct*> myvector7;
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
s = new mystruct(42);
|
||||
myvector7.push_back(s);
|
||||
}
|
||||
|
||||
its = myvector7.begin() + 2;
|
||||
myvector7.insert ( its, myvector6.begin() + 3, myvector6.end() - 2 );
|
||||
|
||||
std::cout << "myvector contains:";
|
||||
for (its = myvector7.begin(); its < myvector7.end(); its++)
|
||||
std::cout << ' ' << **its;
|
||||
std::cout << "\nsize:" << myvector7.size() << " capacity:" << myvector7.capacity() << "\n";
|
||||
}
|
||||
TESTEND
|
||||
|
||||
|
||||
/*
|
||||
TEST(vector::erase)
|
||||
{
|
||||
// title
|
||||
@@ -843,7 +935,6 @@ int main() {
|
||||
myvector.get_allocator().deallocate(p,5);
|
||||
}
|
||||
TESTEND
|
||||
*/
|
||||
|
||||
|
||||
// execute tests and print them :
|
||||
|
||||
Reference in New Issue
Block a user