Использовать template!
Распределение памяти для хранения массивов должно быть в конструкторе, а освобождение – в деструкторе.
C/C++
Найти Сумму, разность и скалярное произведение двух векторов в N-мерном пространстве. Язык С++ ООП
Вектор в N-мерном пространстве - это всего лишь одномерный массив длиной N.
Сумма векторов a и b d векторе c:
А что за класс надо сделать - о котором в вопросе ни слова не сказано - и как в этот класс встроить код векторных операций - это уже сам[а].
Сумма векторов a и b d векторе c:
for (int i = 0; i < N; ++i) { c[i] = a[i] + b[i]; }
Разность векторов a и b векторе c: for (int i = 0; i < N; ++i) { c[i] = a[i] - b[i]; }
Скалярное произведение в переменной result: result = 0;
for (int i = 0; i < N; ++i) { result += a[i] * b[i]; }
А что за класс надо сделать - о котором в вопросе ни слова не сказано - и как в этот класс встроить код векторных операций - это уже сам[а].
нафига выделять и освобождать память?
можно же указать размер массива в шаблоне
можно же указать размер массива в шаблоне
#include
using namespace std;
template
class Vector
{
public:
Vector(){ Set(0); }
_type m_data[_size];
void Set(_type v)
{
for(uint32_t i = 0; i < _size; ++i)
{
m_data[i] = v;
}
}
_type Summ()
{
_type ret = static_cast(0);
for(uint32_t i = 0; i < _size; ++i)
{
ret += m_data[i];
}
return ret;
}
};
int main()
{
Vector v;
v.Set(1);
cout
Мансур Палванов
Благодарю
Ох и задание ты конечно дал. Жаль, конечно, что значения не дал, но я введу случайные. Однако же странно, что ты заявил про освобождение памяти, так как тут энивей будет использоваться std::array. Ну, я попытался выполнить требования, вот код (GCC 12):
#include
#include
template
class Vector {
private:
T* data;
public:
Vector() : data(new T[N]) {}
Vector(const std::array& arr) : data(new T[N]) {
for (std::size_t i = 0; i < N; i++) {
data[i] = arr[i];
}
}
Vector(std::initializer_list list) : data(new T[N]) {
std::size_t i = 0;
for (const auto& elem : list) {
data[i] = elem;
i++;
if (i >= N) {
break;
}
}
}
~Vector() {
delete[] data;
}
Vector operator+ (const Vector& other) const {
std::array resultArray {0};
for (std::size_t i = 0; i < N; i++) {
resultArray[i] = data[i] + other[i];
}
return Vector(resultArray);
}
Vector operator- (const Vector& other) const {
std::array resultArray {0};
for (std::size_t i = 0; i < N; i++) {
resultArray[i] = data[i] - other[i];
}
return Vector(resultArray);
}
T operator* (const Vector& other) const {
T result = 0;
for (std::size_t i = 0; i < N; i++) {
result += data[i] * other[i];
}
return result;
}
const T& operator[] (std::size_t index) const {
return data[index];
}
T& operator[] (std::size_t index) {
return data[index];
}
};
int main() {
Vector v1{1, 2, 3, 4};
Vector v2{5, 6, 7, 8};
Vector sum = v1 + v2;
Vector diff = v1 - v2;
int product = v1 * v2;
std::string messages[3] = {"Сумма: ", "Разница: ", "Произведение: "};
Vector* results[3] = {&sum, &diff, nullptr};
int product_result[1] = {product};
for (std::size_t i = 0; i < 3; i++) {
std::cout
Мансур Палванов
Спасибо большое за вашу работу
Похожие вопросы
- Найдите сумму, разность и скалярное произведение двух векторов в N-мерном пространстве. Язык С++ ООП
- Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.
- Найти сумму всех n-значных чисел (1 ≤n ≤ 4).
- Задача на максимальное произведение в векторе C++ Где ошибка в коде?
- Найти сумму и количество случайных элементов последовательности размером n, кратных числу k
- Найти сумму и произведения элементов ряда
- Найти сумму цифр чисел, записанных в файл
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????
- 5) Найти среднее значение элементов построчно и по столбцам массива n*n случайных чисел. с++ пж помагите
- Найти сумму нечетных элементов, стоящих на нечетных местах (то есть имеющих нечетные номера).