Vector with overloaded operator "/" 

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> using namespace std; class Vector { private: int length; public: double * data; Vector(int length, double value = 0) { this->length = length; this->data = new double[length]; for (int i = 0; i < length; i++) { this->data[i] = value; } } ~Vector() { delete[] this->data; } // Деление вектора на число. const Vector operator/(double num) { int length = this->length; Vector v = Vector(length); for (int i = 0; i < length; i++) { v.data[i] = this->data[i] / num; } return v; } // Деление вектора на вектор. // Добавил простой обход проблемы, когда делишь векторы разной длины, // например: Vector(3) / Vector(5), Vector(5) / Vector(3) // Сделал так, что цикл идет по минимальной длине из двух векторов const Vector operator/(Vector & v2) { int length = this->length; int v2Length = v2.getLength(); int minLength = (length < v2Length) ? length : v2Length; // Получаем копию данного вектора, поделив его на 1 Vector v = *this / 1; for (int i = 0; i < minLength; i++) { v.data[i] = v.data[i] / v2.data[i]; } return v; } int getLength() { return this->length; } void print() { int length = this->length; int lastIndex = length - 1; cout << "["; for (int i = 0; i < length; i++) { cout << this->data[i]; if (i < lastIndex) { cout << ", "; } } cout << "]"; } }; int main() { Vector v1 = Vector(3); v1.data[0] = 1; v1.data[1] = 2; v1.data[2] = 3; v1.print(); Vector v2 = v1 / 2; v2.print(); Vector v3 = v1 / v2; v3.print(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines