Создать класс по обработке массива данных

104
29 ноября 2021, 01:30

ООП в плюсах для меня тема новая. Нужно написать класс my_sample который должен иметь среди своих приватных полей вектор long double, который назвать vi. Он должен иметь конструктор по умолчанию. Добавьте конструктор, который принимает вектор long double в качестве аргумента и использует его для инициализации объекта. Добавьте функцию print, которая записывает my_sample в выходной поток, передаваемый в качестве параметра. Выходной формат должен быть: ’<’ integer ’:’ space num1 space ... numN space ’>’,, где integer - кол-во элементов вектора. Перегрузите оператор <<, чтобы он записывал в выходной поток, переданный в качестве параметра, используя для этого функцию print my_sample.

Добавить следующие функции:

get_data (): возвращает вектор данных объекта my_sample. minimum() - минимальное число в массиве maximum() - максимальное число в массиве

Перегрузить оператор >>, чтобы мы могли прочитать my_sample из потока. Формат ввода должен точно соответствовать формату вывода.

Answer 1

добавил вывод, ввод примерные, точную спецификацию вашего класса не понимаю

#include "pch.h"
#include <vector>
#include <iostream>
#include "my_sample.h"
using namespace std;

class my_sample
{
private:
  vector<long double> vi;
public:
  //my_sample() = default;
  my_sample()
  {
    vi = {};
  }
  my_sample(vector<long double> _vi)
  {
    vi = _vi;
  }
  friend void print(ostream& out, const my_sample &obj)
  {
    out << '<';
    out << obj.vi.size();
    out << ':';
    for (int i = 0; i < obj.vi.size(); i++)
    {
      out << obj.vi[i] << ' ';
    }
    out << '>';
  }

  friend ostream& operator<<(ostream& out, const my_sample &obj) {
      print(out, obj);
      return out;
  }
  friend istream& operator>>(istream& in, my_sample &obj) {
    int n;
    cin >> n;
    for (int i = 0; i < n;++i) {
      int x;
      cin >> x;
      obj.vi.push_back(x);
    }
    return in;
  }
};
int main()
{
  my_sample a({ 12.4, 14.5, 155.8 });
  print(cout, a);
  return 0;
}
READ ALSO
Спецификатор времени компиляции noexcept

Спецификатор времени компиляции noexcept

А для чего нужны спецификации исключения noexcept(true) и noexcept(false), как и когда они используются?

97
Диалог vuetify vue js и jquery

Диалог vuetify vue js и jquery

Я пытаюсь сделать диалог vuetify(библиотека vue js) растягиваемым с помощью resize jqueryЯ столкнулся с рядом проблем: 1) jquery расширяет диалог по всем...

122
random Points In Polygon С#?(Unity)

random Points In Polygon С#?(Unity)

Я знаю о последовательности ХэлтонаНо пока я не могу найти формулы, по которым генерируются точки

133