Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба4 / Laba 4 (6)
.cpp#include <iostream>
#include <locale>
#include <vector>
using namespace std;
class my_vector {
vector<double> coords;
public:
my_vector(int n = 0) : coords(n, 0) {}
my_vector(const vector<double>& v) : coords(v) {}
// а) Присваивание
my_vector& operator=(const my_vector& other) {
coords = other.coords;
return *this;
}
// б) Сложение
my_vector operator+(const my_vector& other) const {
my_vector result(coords.size());
for (size_t i = 0; i < coords.size(); i++) {
result.coords[i] = coords[i] + other.coords[i];
}
return result;
}
// в) Сложение с присваиванием
my_vector& operator+=(const my_vector& other) {
for (size_t i = 0; i < coords.size(); i++) {
coords[i] += other.coords[i];
}
return *this;
}
// г) Умножение на число
my_vector operator*(double scalar) const {
my_vector result(coords.size());
for (size_t i = 0; i < coords.size(); i++) {
result.coords[i] = coords[i] * scalar;
}
return result;
}
friend my_vector operator*(double scalar, const my_vector& v);
// д) Скалярное произведение
double operator*(const my_vector& other) const {
double result = 0;
for (size_t i = 0; i < coords.size(); i++) {
result += coords[i] * other.coords[i];
}
return result;
}
// е) Индексирование
double& operator[](int index) {
return coords[index];
}
const double& operator[](int index) const {
return coords[index];
}
void print() const {
cout << "(";
for (size_t i = 0; i < coords.size(); i++) {
cout << coords[i];
if (i < coords.size() - 1) cout << ", ";
}
cout << ")" << endl;
}
};
my_vector operator*(double scalar, const my_vector& v) {
return v * scalar;
}
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
my_vector v1({1, 2, 3});
my_vector v2({4, 5, 6});
cout << "v1 = "; v1.print();
cout << "v2 = "; v2.print();
my_vector v3 = v1 + v2;
cout << "v1 + v2 = "; v3.print();
double dot = v1 * v2;
cout << "Скалярное произведение: " << dot << endl;
v1[0] = 10;
cout << "После v1[0] = 10: "; v1.print();
return 0;
}
Соседние файлы в папке Лаба4
