C/C++

Помогите написать код C++

Задан массив целых чисел. Удалить все элементы, стоящие левее максимального.
#include <iostream>
using namespace std;
class Array {
public:
Array() = delete;
Array(const Array&) = delete;
Array(Array&&) = delete;
Array& operator=(const Array&) = delete;
Array& operator=(Array&&) = delete;
explicit Array(const int n) : n(n), box(new int[n]), m(0) {}
explicit Array(initializer_list<int> lst) : n(lst.size()), box(new int[n]), m(0) {
copy(lst.begin(), lst.end(), begin());
}
~Array() {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
}
int& operator[](int index) {
return box[index + m];
}
int* max_element() {
auto pmax = begin();
for (auto it = begin() + 1; it != end(); ++it) {
if (*it > *pmax) pmax = it;
}
return pmax;
}
int* min_element() {
auto pmin = begin();
for (auto it = begin() + 1; it != end(); ++it) {
if (*it < *pmin) pmin = it;
}
}
void remove_left(const int* pos) {
m = pos - begin();
}
int& front() {
return *begin();
}
int& back() {
return *(end() - 1);
}
int size()const {
auto x = n - m;
return x < 0? 0 : x;
}
bool empty()const {
return n == 0 || m >= n || box == nullptr;
}
int* begin()const {
return box + m;
}
int* end()const {
return box + n;
}
private:
int n;
int* box;
int m;
friend ostream& operator<<(ostream& out, const Array& box) {
for (auto x : box) out << x << ' ';
return out;
}
};
int main() {
Array box{ 15, 37, 28, 61, 92, 14, 37, 64, 87, 62, 48 };
cout << box << "\nArray size: " << box.size() << '\n';
box.remove_left(box.max_element());
cout << box << "\nArray size: " << box.size() << '\n';
system("pause > nul");
}
Arg A.k.a Mario Mc Ka[Rap]Im.6Ala
Arg A.k.a Mario Mc Ka[Rap]Im.6Ala
58 946
Лучший ответ
Ильсур Латыпов просто написано слишком сложно. Мы ток начал массивы, и половину того, что написано не понимаю...
находишь позицию максимального и через erase убираешь слева пока максимальное не станет 0 по индексу
Александр Русаков а что за функция erase, у нас такой нету в методичке
Что это ещё за бред? Массив какой - статический локальный или глобальный, динамический или VLA из "кучи"? И откуда это он "задан" - вводится с экрана в интерактивном сеансе, инициализуется, программируется, задаётся рандомно или из файла считывается? А что это за "максимальный элемент" - самый первый или последний? Вот массив:
{1,2,3,2,3,2,3}, в котором три максимальных элемента. В данном случае делать что надо?
。◕‿◕。
ОК
Олег Кибец
29 440
Александр Русаков одно максимальное значение
Ты начал писать?
Артём Гасанов
Артём Гасанов
7 902
Александр Русаков у динамический, у нас про вектора даже ничего не написано в методичке.
Александр Русаков мы ток начали, для меня не особо легкое
Александр Русаков Спасибо огромное! А подскажите еще какой функцией удалить элементы, расположенные левее максимального?