Imagining vectors were not defined in C++ ... Define a class called VectorDouble that is like a class for a vector with base type double. Your class VectorDouble will have a private member variable for a dynamic array of doubles. It will also have two member variables of type int, one called max_count for the size of the dynamic array of doubles; and one called count for the number of array positions currently holding values. (max_count is the same as the capacity of a vector; count is the same as the size of a vector) If you attempt to add an element (a value of type double) to the vector object of the class VectorDouble and there is no more room, then a new dynamic array with twice the capacity of the old dynamic array is created and the values of the old dynamic array are copied to the new dynamic array. Your class should have all of the following: Three constructors: a default constructor that creates a dynamic array for 50 elements, a constructor with one int argument for the number of elements in the initial dynamic array, and a copy constructor. A destructor. A suitable overloading of the assignment operator =. A suitable overloading of the equality operator ==. To be equal, the values of count and the count array elements must be equal, but the values of max_count need not be equal. Member functions push_back, capacity, size, reserve, and resize that behave the same as the member functions of the same names for vectors. |
|
|
|
|
|
|
|
|
Pretty cryptic error messages there |
|
|
|
|
|
|
|
|
Imagining vectors were not defined in C++ ... Define a class called VectorDouble that is like a class for a vector with base type double. Your class VectorDouble will have a private member variable for a dynamic array of doubles. It will also have two member variables of type int, one called max_count for the size of the dynamic array of doubles; and one called count for the number of array positions currently holding values. (max_count is the same as the capacity of a vector; count is the same as the size of a vector) If you attempt to add an element (a value of type double) to the vector object of the class VectorDouble and there is no more room, then a new dynamic array with twice the capacity of the old dynamic array is created and the values of the old dynamic array are copied to the new dynamic array. Your class should have all of the following: Three constructors: a default constructor that creates a dynamic array for 50 elements, a constructor with one int argument for the number of elements in the initial dynamic array, and a copy constructor. A destructor. A suitable overloading of the assignment operator =. A suitable overloading of the equality operator ==. To be equal, the values of count and the count array elements must be equal, but the values of max_count need not be equal. Member functions push_back, capacity, size, reserve, and resize that behave the same as the member functions of the same names for vectors. |
There are 3 functions: - VectorDouble::VectorDouble(VectorDouble const&) - VectorDouble::operator=(VectorDouble const&) *might be resolved* - VectorDouble::resize(int) These functions are being called by my code, but they do not have a body. |
I wrote: |
---|
I'm not an expert on them, but I heard templates can take any value. Just read the topic again. |
|
|
Very, very simple. |
|
|
Not exactly the fastest way. I did however test all the functions, and they worked fine when I did. |
|
|