// test.cpp // // Test driver for Vector. #include using std::cin; using std::cout; using std::endl; #include "Vector.h" template void display( const Vector & v ) { cout << "[ "; for ( const T & x : v ) cout << x << ' '; cout << "]\n"; } int main() { int * p = NULL; delete p; cout << "Testing constructor(int), size, operator[], begin, end...\n"; Vector v(5); cout << "[ 0 0 0 0 0 ] = "; display(v); cout << "5 = " << v.size() << endl; for ( int i = 0; i < v.size(); ++i ) v[i] = 10*i; cout << "[ 0 10 20 30 40 ] = "; display(v); Vector v2(0); cout << "[ ] = "; display(v2); // v2 = 5; // display(v2); cout << "\nTesting default constructor...\n"; Vector v3; cout << "[ ] = "; display(v3); cout << "\nTesting init list constructor...\n"; Vector v5 = {6, 7, 8}; cout << "[ 6 7 8 ] = "; display(v5); cout << "\nTesting insert...\n"; auto itr = v3.insert(v3.end(), 37); cout << "[ 37 ] = "; display(v3); cout << *itr << '\n'; itr = v3.insert(v3.end(), 43); cout << "[ 37 43 ] = "; display(v3); cout << *itr << '\n'; itr = v3.insert(v3.begin(), 20); cout << "[ 20 37 43 ] = "; display(v3); cout << *itr << '\n'; itr = v3.insert(v3.begin() + 1, 25); cout << "[ 20 25 37 43 ] = "; display(v3); cout << *itr << '\n'; itr = v3.insert(v3.begin() + 2, 31); cout << "[ 20 25 31 37 43 ] = "; display(v3); cout << *itr << '\n'; itr = v3.insert(v3.begin() + 1, 23); cout << "[ 20 23 25 31 37 43 ] = "; display(v3); cout << *itr << '\n'; cout << "\nTesting erase...\n"; Vector v6 = {6, 7, 8}; cout << "[ 6 7 8 ] = "; display(v6); itr = v6.erase(v6.begin() + 1); cout << "[ 6 8 ] = "; display(v6); cout << *itr << '\n'; itr = v6.erase(v6.begin() + 1); cout << "[ 6 ] = "; display(v6); if (itr != v6.end()) cout << "ERROR!\n"; itr = v6.erase(v6.begin()); cout << "[ ] = "; display(v6); if (itr != v6.end()) cout << "ERROR!\n"; return 0; }