Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- class Array
- {
- public:
- // Конструкторы
- Array() : m_size(0), m_data(nullptr) {}
- explicit Array(size_t size) : m_size(size), m_data(new int[size]) {}
- Array(const Array& other) : m_size(other.m_size), m_data(new int[other.m_size])
- {
- std::copy(other.m_data, other.m_data + other.m_size, m_data);
- }
- // Деструктор
- ~Array()
- {
- delete[] m_data;
- }
- // Оператор присваивания
- Array& operator=(const Array& other)
- {
- if (this != &other)
- {
- delete[] m_data;
- m_size = other.m_size;
- m_data = new int[m_size];
- std::copy(other.m_data, other.m_data + other.m_size, m_data);
- }
- return *this;
- }
- // Функции-члены
- void fill(int value)
- {
- std::fill(m_data, m_data + m_size, value);
- }
- void display()
- {
- for (size_t i = 0; i < m_size; ++i)
- {
- std::cout << m_data[i] << " ";
- }
- std::cout << std::endl;
- }
- void resize(size_t size)
- {
- int* newData = new int[size];
- size_t minSize = std::min(size, m_size);
- std::copy(m_data, m_data + minSize, newData);
- delete[] m_data;
- m_data = newData;
- m_size = size;
- }
- void sort()
- {
- std::sort(m_data, m_data + m_size);
- }
- int min() const
- {
- return *std::min_element(m_data, m_data + m_size);
- }
- int max() const
- {
- return *std::max_element(m_data, m_data + m_size);
- }
- private:
- size_t m_size;
- int* m_data;
- };
- // Создание массива с размером 5 и заполнение его значениями 10
- Array arr(5);
- arr.fill(10);
- // Отображение содержимого массива
- arr.display();
- // Изменение размера массива на 3 и заполнение новых элементов значениями 20
- arr.resize(8);
- arr.fill(20);
- // Отображение содержимого массива после изменения размера
- arr.display();
- // Сортировка массива
- arr.sort();
- // Отображение содержимого массива после сортировки
- arr.display();
- // Определение минимального и максимального значения в массиве
- std::cout << "Min value: " << arr.min() << std::endl;
- std::cout << "Max value: " << arr.max() << std::endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement