C++. Объявлен массив из 10 объектов и они выводятся на экран(это код у меня написан). Вывести объект с самым большим значением поля "а"
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
class A
{
int a;
int b;
public:
void show()
{
a = rand() % 100;
b = rand() % 100;
cout << a << endl;
cout << b << endl;
}
int geta()
{
return a;
}
int getb()
{
return b;
}
friend ostream& operator << (ostream& out, const A& p )
{
out << "A: " << p.a << endl;
out << "B: " << p.b << endl;
return out;
}
};
int main()
{
srand(time(nullptr));
A obj[10];
for (int i = 0; i < 10; i++)
{
cout << "#" << i << endl;
obj[i].show();
cout <<"____________"<< endl;
}
Как найти самое большое число в массиве обычных чисел я знаю, а вывести объект с самым большим значением поля "а" не получается.
Ответы (1 шт):
Автор решения: Фёдор
→ Ссылка
советую сделать obj вектором, тогда реализация будет таковой:
std::vector<A> obj; //Ваш массив
int max = obj[0].geta();
int index = 0;
for (auto it = obj.begin(); it < obj.end(); it++)
{
if(it->geta() > max){
max = it->geta();
index = (it-obj.begin());
}
}
obj[index].show();