// Oldham, Jeffrey D. // 2000Mar17 // CS1321 // Test Dynamic Array Implementations // Test self-assignment. #include #include // has EXIT_SUCCESS #include // helps detect memory leaks #include "dynamicArray.h" ostream& printArray(ostream& out, dynamicArray & d, const char msg[]) { out << msg << "\t" << d.size() << endl; for (dynamicArray::length_pos i = 0; i < d.size(); ++i) out << i << ":\t" << d.get(i) << endl; return out; } int main(int argc, char *argv[]) { mtrace(); // turn on memory leak detection if (argc != 2) { cerr << argv[0] << ": number-of-pushes\n"; throw "missing command-line argument"; } dynamicArray::length_pos nuPushes = strtoul(argv[1], static_cast(0), 0); // Do not check for errors. Bad! if (nuPushes < 4) { cerr << argv[0] << ": number-of-pushes must be at least 4\n"; throw "too small number of pushes"; } dynamicArray d1, d2; for (dynamicArray::length_pos i = 0; i < nuPushes; ++i) d1.push_back(2*i+1); for (dynamicArray::length_pos i = 0; i < nuPushes-3; ++i) d2.push_back(4*i+1); // Test copy constructor. d2 = d2; for (dynamicArray::length_pos i = nuPushes-3; i < 2*nuPushes+2; ++i) d2.push_back(4*i+1); printArray(cout, d2, "d2"); return EXIT_SUCCESS; }