Есть класс CarShop, содержащий в себе следующий переменные:
std::string name;
int yearOfCreation;
int engineCapacity;
int price;
А также соответствующие get-методы
При попытке поиска макс. элемента выдаёт ошибку компилятора 2100.
Как нужно правильно описать max_element()
?
setlocale(LC_ALL, "ru");
std::vector<CarShop> car;
int size = 0;
std::string name;
int yearOfCreation;
int engineCapacity;
int price;
int choise = 0;
do {
//Заполняем класс
car.resize(size);
cout << "\nВведите марку для " << size + 1 << "-й машины: ";
cin >> name;
cout << "Введите год выпуска для " << size + 1 << "-й машины: ";
cin >> yearOfCreation;
cout << "Введите объём двигателя для " << size + 1 << "-й машины: ";
cin >> engineCapacity;
cout << "Введите цену для " << size + 1 << "-й машины: ";
cin >> price;
car.insert(car.begin() + size, CarShop(name, yearOfCreation, engineCapacity, price));
size++;
//Заполняем класс END
//Предлагаем юзеру добавить машину
do {
std::cout << " Добавить еще одну машину?\n\t 1 - ДА\n\t 0 - НЕТ\n";
cin >> choise;
} while (choise > 1 || choise < 0);
//Предлагаем юзеру добавить машину END
} while (choise == 1);
//Поиск макс. элемента
std::max_element(car[0].getEngineCapacity(), car[size].getEngineCapacity());
system("pause");
return 0;
Примерно так -
std::max_element(car.begin(),car.end(),
[](const CarShop& a, const CarShop& b)
{ return a.getEngineCapacity() < b.getEngineCapacity()});
Только не забудьте воспользоваться тем, что эта функция возвращает, а то вы ее как-то вызвали, а результат не использовали...
Во многих примерах кода на сайте встречаются как записи вида void main(), так и int main() для главной функции программы
Вопрос заключается в том, как правильно реализовать Getter для указателя, чтобы он был "безопасным"Под безопасностью я подразумеваю предотвращение...
Есть вектор std::vector<uint8_t> From; Он содержит 10^9 элементов