I have created my own vector class and I have two constructors:
1)First one creates a zero Vector with dimension dim
2)Second one takes as an input vector v and fills in my own Vector:
//Vector:
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <cmath>
using namespace std;
class Vector{
private:
int dim;
double *elem;
public:
Vector(int dim); //n-dimensional zero vector
Vector(const vector<double>& v); // vector based on the input coordinates
double& operator[](int i) const {return elem[i];}
Vector operator+(const Vector& v);
Vector operator-(const Vector& v);
Vector operator*(const Vector& v);
void norm();
int get_size() const {
return dim;
}
};
Vector::Vector(int size){
elem = new double[size]; //adress of the array
dim = size;
for(int i = 0;i<size; ++i){
elem[i] = 0;
}
}
Vector::Vector(const vector<double>& v){
for(unsigned i = 0;i<v.size();++i){
elem[i] = v[i];
}
dim = v.size();
}
Compiler throws me no error, but when I try to fill in my Vectors nothing happens.
int main(){
Vector v1(3);
vector<double> vect = {1,2,3};
Vector v2(vect);
for(int i = 0;i<v1.get_size();++i){
cout << v1[i];
}
}
Can you tell me, where did I do a mistake?