C/C++

Помогите пожалуйста, нужно сделать программу на C++

В каждом из массивов X(Nx), Y(Ny) и Z(Nz) вещественных чисел найти среди положительных элементов минимальный элемент и его индекс. Массивы генерировать при помощи генератора случайных чисел.
И нужно выполнить при помощи классов.
#include <algorithm>
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
class Random {
public:
Random() {
random_device device;
gen.seed(device());
}
double next(double first, double last) {
uniform_real_distribution<double> urd(first, last);
return urd(gen);
}
private:
mt19937_64 gen;
};
class DoubleArray {
public:
DoubleArray() = delete;
DoubleArray(const DoubleArray&) = delete;
DoubleArray& operator=(const DoubleArray&) = delete;
DoubleArray(DoubleArray&&) = delete;
DoubleArray& operator=(DoubleArray&&) = delete;
explicit DoubleArray(const size_t n) : n(n), box(new double [n]) {}
~DoubleArray() {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
}
void fill_random(double a, double b) {
if (a > b) swap(a, b);
Random rand;
auto input = [&](double& x) { x = rand.next(a, b); };
for_each(box, box + n, input);
}
void print(const streamsize width, const streamsize prec)const {
cout << fixed << setprecision(prec);
auto show = [width](double x) { cout << setw(width) << x; };
for_each(box, box + n, show);
puts("");
}
pair<double, size_t> mins()const {
auto it = min_element(box, box + n);
return { *it, it - box };
}
private:
size_t n;
double* box;
};
unsigned size_buffer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
return value;
}
void test(DoubleArray& box) {
box.fill_random(-10, 10);
box.print(8, 2);
auto [mv, imv] = box.mins();
cout
<< "Min value: " << mv << '\n'
<< "Index of min value: " << imv << "\n\n";
}
}
int main() {
auto nx = size_buffer("Nx: ");
DoubleArray x(nx);
test(x);
auto ny = size_buffer("Ny: ");
DoubleArray y(ny);
test(y);
auto nz = size_buffer("Nz: ");
DoubleArray z(nz);
test(z);
system("pause > nul");
}
Yura Vassileko
Yura Vassileko
53 445
Лучший ответ
Внук Терориста Сынь Прокурора Здравствуйте, спасибо огромное!! Но у меня почему-то выдал такие ошибки